Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.47.0-wmf.19 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 Mechanika teoretyczna 0 20265 555448 555438 2026-09-10T12:31:31Z Persino 2851 555448 wikitext text/x-wiki <noinclude>{{Status|-100%|Astronomia i fizyka|typ=z fizyki|poziom=Studia}} {{UnikalnaStronaStart | nagłówek = {{Info|Książka wymaga poprawek językowych i stylistycznych.}} | nagłówek prawy = {{Wersja do czytania}} | stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{PierwszyArtykuł}}|{{OstatniArtykuł}}}} }}</noinclude> Będziemy się tutaj zajmowali mechaniką teoretyczną w skład, których wchodzą następujące działy: kinematyka i dynamika Newtona, równiami ruchu z więzami, równaniem Lagrange pierwszego i drugiego rodzaju, ciałem sztywnym, a także teorią giroskopu, kinematyką deformowanych ciał, a także będziemy się zajmować równaniami materiałowymi, teorią sprężystości i na samym końcu teorią płynów. == Spis treści == === Kinematyka i dynamika klasyczna opisu punktu materialnego === {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Kinematyka|nazwa=Kinematyka}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Dynamika|nazwa=Dynamika}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Dynamika/Przykłady|nazwa=Dynamika - Przykłady}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Zasady zachowania|nazwa=Zasady zachowania}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Prawa Keplera|nazwa=Prawa Keplera|analiza=tak|parser=tak}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Siły centralne|nazwa=Siły centralne}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Prawo powszechnego ciążenia|nazwa=Prawo powszechnego ciążenia}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Układy nieinercjalne|nazwa=Układy nieinercjalne}} === Inne problemy dynamiczne === {{SpisTreści|Problem zderzenia cząstek}} {{SpisTreści|Dynamika punktów masowych}} {{SpisTreści|Ruch ciał ograniczonych więzami}} {{SpisTreści|Układ ciał ograniczonych więzami}} {{SpisTreści|Równania Lagrange'a drugiego rodzaju i zasada Hamiltona}} {{SpisTreści|Teoria ciała sztywnego i giroskopu}} {{SpisTreści|Kanoniczne metody mechaniki klasycznej}} {{SpisTreści|Zdeformowane ciała i ich opis kinematyczny}} {{SpisTreści|Zasady zachowania w mechanice materiałów}} {{SpisTreści|Tensor napięć a w tym tensor tarcia, a prawo Hooke'a|analiza=tak}} {{SpisTreści|Teoria sprężystości w przedstawieniu klasycznym}} {{SpisTreści|Wprowadzenie do hydrodynamiki}} == Bibliografia == * [[Fizyka_teoretyczna/Bibliografia|Bibliografia]] {{Licencja|Autor=[[Wikipedysta:Persino|Mirosław Makowiecki]]|Ukończone szkoły=Absolwent UMCS Fizyki Komputerowej Uniwersytetu Marii Curie-Skłodowskiej w Lublinie|Email=miroslaw(kropka)makowiecki(małpa)gmail(kropka)pl}} <noinclude>{{UnikalnaStronaKoniec}}</noinclude> gn17oqzfvlfodkzhd4o7kqqvfkzw0hg 555449 555448 2026-09-10T12:35:02Z Persino 2851 555449 wikitext text/x-wiki <noinclude>{{Status|-100%|Astronomia i fizyka|typ=z fizyki|poziom=Studia}} {{UnikalnaStronaStart | nagłówek = {{Info|Książka wymaga poprawek językowych i stylistycznych.}} | nagłówek prawy = {{Wersja do czytania}} | stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{PierwszyArtykuł}}|{{OstatniArtykuł}}}} }}</noinclude> Będziemy się tutaj zajmowali mechaniką teoretyczną w skład, których wchodzą następujące działy: kinematyka i dynamika Newtona, równiami ruchu z więzami, równaniem Lagrange pierwszego i drugiego rodzaju, ciałem sztywnym, a także teorią giroskopu, kinematyką deformowanych ciał, a także będziemy się zajmować równaniami materiałowymi, teorią sprężystości i na samym końcu teorią płynów. == Spis treści == === Kinematyka i dynamika klasyczna opisu punktu materialnego === {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Kinematyka|nazwa=Kinematyka}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Dynamika|nazwa=Dynamika}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Dynamika/Przykłady|nazwa=Dynamika - Przykłady}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Zasady zachowania|nazwa=Zasady zachowania}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Prawa Keplera|nazwa=Prawa Keplera|analiza=tak|parser=tak}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Siły centralne|nazwa=Siły centralne}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Prawo powszechnego ciążenia|nazwa=Prawo powszechnego ciążenia}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Układy nieinercjalne|nazwa=Układy nieinercjalne}} === Inne problemy dynamiczne === {{SpisTreści|Problem zderzenia cząstek}} {{SpisTreści|Dynamika punktów masowych}} {{SpisTreści|Ruch ciał ograniczonych więzami}} {{SpisTreści|Układ ciał ograniczonych więzami}} {{SpisTreści|Równania Lagrange'a drugiego rodzaju i zasada Hamiltona}} {{SpisTreści|Teoria ciała sztywnego i giroskopu}} {{SpisTreści|Kanoniczne metody mechaniki klasycznej}} {{SpisTreści|Zdeformowane ciała i ich opis kinematyczny}} {{SpisTreści|Zasady zachowania w mechanice materiałów}} {{SpisTreści|Tensor napięć a w tym tensor tarcia, a prawo Hooke'a|parser=tak|analiza=tak}} {{SpisTreści|Teoria sprężystości w przedstawieniu klasycznym}} {{SpisTreści|Wprowadzenie do hydrodynamiki}} == Bibliografia == * [[Fizyka_teoretyczna/Bibliografia|Bibliografia]] {{Licencja|Autor=[[Wikipedysta:Persino|Mirosław Makowiecki]]|Ukończone szkoły=Absolwent UMCS Fizyki Komputerowej Uniwersytetu Marii Curie-Skłodowskiej w Lublinie|Email=miroslaw(kropka)makowiecki(małpa)gmail(kropka)pl}} <noinclude>{{UnikalnaStronaKoniec}}</noinclude> bu4nahaxxz1bnd81zyvntuk1uakjcno 555453 555449 2026-09-10T13:09:29Z Persino 2851 555453 wikitext text/x-wiki <noinclude>{{Status|-100%|Astronomia i fizyka|typ=z fizyki|poziom=Studia}} {{UnikalnaStronaStart | nagłówek = {{Info|Książka wymaga poprawek językowych i stylistycznych.}} | nagłówek prawy = {{Wersja do czytania}} | stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{PierwszyArtykuł}}|{{OstatniArtykuł}}}} }}</noinclude> Będziemy się tutaj zajmowali mechaniką teoretyczną w skład, których wchodzą następujące działy: kinematyka i dynamika Newtona, równiami ruchu z więzami, równaniem Lagrange pierwszego i drugiego rodzaju, ciałem sztywnym, a także teorią giroskopu, kinematyką deformowanych ciał, a także będziemy się zajmować równaniami materiałowymi, teorią sprężystości i na samym końcu teorią płynów. == Spis treści == === Kinematyka i dynamika klasyczna opisu punktu materialnego === {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Kinematyka|nazwa=Kinematyka}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Dynamika|nazwa=Dynamika}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Dynamika/Przykłady|nazwa=Dynamika - Przykłady}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Zasady zachowania|nazwa=Zasady zachowania}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Prawa Keplera|nazwa=Prawa Keplera|analiza=tak}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Siły centralne|nazwa=Siły centralne}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Prawo powszechnego ciążenia|nazwa=Prawo powszechnego ciążenia}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Układy nieinercjalne|nazwa=Układy nieinercjalne}} === Inne problemy dynamiczne === {{SpisTreści|Problem zderzenia cząstek}} {{SpisTreści|Dynamika punktów masowych}} {{SpisTreści|Ruch ciał ograniczonych więzami}} {{SpisTreści|Układ ciał ograniczonych więzami}} {{SpisTreści|Równania Lagrange'a drugiego rodzaju i zasada Hamiltona}} {{SpisTreści|Teoria ciała sztywnego i giroskopu}} {{SpisTreści|Kanoniczne metody mechaniki klasycznej}} {{SpisTreści|Zdeformowane ciała i ich opis kinematyczny}} {{SpisTreści|Zasady zachowania w mechanice materiałów}} {{SpisTreści|Tensor napięć a w tym tensor tarcia, a prawo Hooke'a|analiza=tak}} {{SpisTreści|Teoria sprężystości w przedstawieniu klasycznym}} {{SpisTreści|Wprowadzenie do hydrodynamiki}} == Bibliografia == * [[Fizyka_teoretyczna/Bibliografia|Bibliografia]] {{Licencja|Autor=[[Wikipedysta:Persino|Mirosław Makowiecki]]|Ukończone szkoły=Absolwent UMCS Fizyki Komputerowej Uniwersytetu Marii Curie-Skłodowskiej w Lublinie|Email=miroslaw(kropka)makowiecki(małpa)gmail(kropka)pl}} <noinclude>{{UnikalnaStronaKoniec}}</noinclude> ooio95kakz34b4c564xzu55xqllu616 555454 555453 2026-09-10T13:16:21Z Persino 2851 555454 wikitext text/x-wiki <noinclude>{{Status|-100%|Astronomia i fizyka|typ=z fizyki|poziom=Studia}} {{UnikalnaStronaStart | nagłówek = {{Info|Książka wymaga poprawek językowych i stylistycznych.}} | nagłówek prawy = {{Wersja do czytania}} | stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{PierwszyArtykuł}}|{{OstatniArtykuł}}}} }}</noinclude> Będziemy się tutaj zajmowali mechaniką teoretyczną w skład, których wchodzą następujące działy: kinematyka i dynamika Newtona, równiami ruchu z więzami, równaniem Lagrange pierwszego i drugiego rodzaju, ciałem sztywnym, a także teorią giroskopu, kinematyką deformowanych ciał, a także będziemy się zajmować równaniami materiałowymi, teorią sprężystości i na samym końcu teorią płynów. == Spis treści == === Kinematyka i dynamika klasyczna opisu punktu materialnego === {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Kinematyka|nazwa=Kinematyka}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Dynamika|nazwa=Dynamika}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Dynamika/Przykłady|nazwa=Dynamika - Przykłady}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Zasady zachowania|nazwa=Zasady zachowania}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Prawa Keplera|nazwa=Prawa Keplera|parser=tak}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Siły centralne|nazwa=Siły centralne}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Prawo powszechnego ciążenia|nazwa=Prawo powszechnego ciążenia}} {{SpisTreści|Kinematyka i dynamika klasyczna opisu punktu materialnego/Układy nieinercjalne|nazwa=Układy nieinercjalne}} === Inne problemy dynamiczne === {{SpisTreści|Problem zderzenia cząstek}} {{SpisTreści|Dynamika punktów masowych}} {{SpisTreści|Ruch ciał ograniczonych więzami}} {{SpisTreści|Układ ciał ograniczonych więzami}} {{SpisTreści|Równania Lagrange'a drugiego rodzaju i zasada Hamiltona}} {{SpisTreści|Teoria ciała sztywnego i giroskopu}} {{SpisTreści|Kanoniczne metody mechaniki klasycznej}} {{SpisTreści|Zdeformowane ciała i ich opis kinematyczny}} {{SpisTreści|Zasady zachowania w mechanice materiałów}} {{SpisTreści|Tensor napięć a w tym tensor tarcia, a prawo Hooke'a|parser=tak}} {{SpisTreści|Teoria sprężystości w przedstawieniu klasycznym}} {{SpisTreści|Wprowadzenie do hydrodynamiki}} == Bibliografia == * [[Fizyka_teoretyczna/Bibliografia|Bibliografia]] {{Licencja|Autor=[[Wikipedysta:Persino|Mirosław Makowiecki]]|Ukończone szkoły=Absolwent UMCS Fizyki Komputerowej Uniwersytetu Marii Curie-Skłodowskiej w Lublinie|Email=miroslaw(kropka)makowiecki(małpa)gmail(kropka)pl}} <noinclude>{{UnikalnaStronaKoniec}}</noinclude> gqqvclmqwgft1qsb35iw2l41bzbxspq Mechanika teoretyczna/Kanoniczne metody mechaniki klasycznej 0 20318 555543 555365 2026-09-10T21:45:19Z Persino 2851 555543 wikitext text/x-wiki <noinclude><!-- -->{{SkomplikowanaStronaStart<!-- -->| stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{NastępnyArtykuł}}|{{PoprzedniArtykuł}}}}<!-- -->}}</noinclude> Będziemy się tutaj zajmować się definicją pędu uogólnionego, a także definicją Hamiltonianu, a także przepiszemy i udowodnimy równania Hamiltona. Bez tych wprowadzeń nie było by możliwe sformułowania zasad mechaniki kwantowej. == Równania kanoniczne Hamiltona i jego funkcje == W poprzednich rozdziałach, zwłaszcza w punkcie {{LinkWzór|6.18|Równania_Lagrange'a_drugiego_rodzaju_i_zasada_Hamiltona}}, wprowadziliśmy Lagrangian jako podstawowy obiekt mechaniki analitycznej. Lagrangian jest funkcją współrzędnych uogólnionych, ich pochodnych oraz czasu, i stanowi matematyczne ujęcie, która mówi, że rzeczywista trajektoria układu jest tą, dla której działanie przyjmuje wartość ekstremalną. Formalizm Lagrange’a jest bardzo silny, lecz w wielu zastosowaniach — zwłaszcza w fizyce teoretycznej, mechanice kwantowej, teorii pól, dynamice układów z wieloma stopniami swobody — wygodniejsze okazuje się przejście do formalizmu Hamiltona. Pierwszym krokiem jest wprowadzenie pędu uogólnionego. Definicja ta jest naturalnym uogólnieniem klasycznego pędu liniowego, który w mechanice Newtonowskiej jest pochodną energii kinetycznej względem prędkości. W mechanice analitycznej pęd uogólniony jest pochodną Lagrangianu względem prędkości uogólnionej: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> p_k = \frac{\partial L}{\partial \dot{q}_k} </MATH>|8.1}} |2={{CentrujWzór|<MATH> \vec{p}_a = \frac{\partial L}{\partial \vec{v}} </MATH>|8.2}} }} Warto podkreślić, że pęd uogólniony nie musi być równy klasycznemu pędowi fizycznemu. W obecności pól elektromagnetycznych pęd uogólniony zawiera dodatkowe składniki, które nie mają interpretacji czysto mechanicznej. Jest to konsekwencja faktu, że Lagrangian jest obiektem bardziej ogólnym niż energia kinetyczna — opisuje pełną dynamikę układu, a nie tylko jego ruch w przestrzeni. Zakładamy teraz, że prędkość uogólniona może być wyrażona jako funkcja współrzędnej uogólnionej, pędu uogólnionego oraz czasu: {{CentrujWzór|<MATH> \dot{q}_k = \dot{q}_k(q_k, p_k, t) </MATH>|8.3}} Założenie to jest technicznie istotne, ponieważ pozwala odwrócić zależność między pędem a prędkością i przejść do formalizmu Hamiltona, w którym pęd jest traktowany jako niezależna zmienna. W ten sposób przechodzimy z przestrzeni konfiguracji do, która jest znacznie bogatsza strukturalnie i posiada naturalną strukturę symplektyczną. ---- * Funkcja Hamiltona Wprowadzamy teraz funkcję zwaną '''Hamiltonianem'''. Jest to transformacja, Legendre’a Lagrangianu, względem prędkości uogólnionych. Hamiltonian jest zdefiniowany jako: {{CentrujWzór|<MATH> H = \sum_k \dot{q}_k p_k - L </MATH>|8.4}} Transformacja Legendre’a „zamienia” zmienne {{Formuła|<MATH>\dot{q}_k\;</MATH>}} na {{Formuła|<MATH>p_k\;</MATH>}}. W ten sposób przechodzimy z przestrzeni konfiguracji do przestrzeni fazowej, w której każda współrzędna ma swój sprzężony pęd. W przestrzeni fazowej dynamika układu jest opisana przez Hamiltona. Dla krótkich zależności używamy szablonu: {{Formuła|<MATH>H = \dot{\vec{q}}\cdot\vec{p} - L</MATH>}}. Hamiltonian jest więc funkcją współrzędnych uogólnionych, pędów uogólnionych oraz czasu: {{Formuła|<MATH>H = H(q_k, p_k, t)</MATH>}}. ---- * Pochodne Hamiltonianu Aby otrzymać równania kanoniczne, obliczamy pochodne Hamiltonianu względem współrzędnych, pędów oraz czasu. * Pochodna względem współrzędnej uogólnionej {{CentrujWzór|<MATH> \frac{\partial H}{\partial q_k} = \sum_i p_i \frac{\partial \dot{q}_i}{\partial q_k} - \frac{\partial L}{\partial q_k} - \sum_i \frac{\partial L}{\partial \dot{q}_i} \frac{\partial \dot{q}_i}{\partial q_k} = -\frac{\partial L}{\partial q_k} = -\frac{d}{dt}\left(\frac{\partial L}{\partial \dot{q}_k}\right) + Q_z = -\dot{p}_k + Q_z </MATH>|8.5}} Widzimy, że otrzymujemy pierwsze równanie kanoniczne: {{Formuła|<MATH>\dot{p}_k = -\frac{\partial H}{\partial q_k} + Q_z</MATH>}} To równanie jest odpowiednikiem równania Eulera-Lagrange’a, lecz zapisanym w języku Hamiltona. W formalizmie Hamiltonowskim pęd uogólniony jest traktowany jako zmienna podstawowa, a jego zmiana w czasie jest określona przez pochodną Hamiltonianu względem współrzędnej. ---- * Pochodna względem pędu uogólnionego {{CentrujWzór|<MATH> \frac{\partial H}{\partial p_k} = \sum_i \frac{\partial \dot{q}_i}{\partial p_k} p_i + \dot{q}_k - \sum_i \frac{\partial L}{\partial \dot{q}_i} \frac{\partial \dot{q}_k}{\partial p_k} = \dot{q}_k </MATH>|8.6}} Otrzymujemy drugie równanie kanoniczne: {{Formuła|<MATH>\dot{q}_k = \frac{\partial H}{\partial p_k}</MATH>}}. To równanie mówi, że prędkość uogólniona jest pochodną Hamiltonianu względem pędu. Jest to analogia do klasycznej relacji: {{Formuła|<MATH>v = \frac{\partial H}{\partial p}</MATH>}}, która w mechanice kwantowej staje się operatorem. ---- * Pochodna względem czasu {{CentrujWzór|<MATH> \frac{\partial H}{\partial t} = -\frac{\partial L}{\partial t} </MATH>|8.7}} Jeśli Lagrangian nie zależy od czasu, to Hamiltonian również nie zależy od czasu. Jest to kluczowy warunek zachowania energii. ---- * Całkowita pochodna Hamiltonianu Korzystając z definicji Hamiltonianu oraz równania Lagrange’a, otrzymujemy: {{CentrujWzór|<MATH> \frac{dH}{dt} = \frac{d}{dt}\left(\sum_k \dot{q}_k p_k - L\right) = \left( \sum_k \frac{d}{dt}\left(\frac{\partial L}{\partial \dot{q}_k}\right)\dot{q}_k + \sum_k \frac{\partial L}{\partial \dot{q}_k}\ddot{q}_k - \frac{\partial L}{\partial t} - \sum_k \frac{\partial L}{\partial q_k}\dot{q}_k - \sum_k \frac{\partial L}{\partial \dot{q}_k}\ddot{q}_k \right) </MATH>{{Br}}<MATH> = -\frac{\partial L}{\partial t} = \frac{\partial H}{\partial t} </MATH>|8.8}} Tożsamość ta jest fundamentalna: całkowita pochodna Hamiltonianu jest równa jego pochodnej cząstkowej względem czasu. Oznacza to, że jeśli Hamiltonian nie zależy od czasu, to jest on wielkością zachowaną — energią całkowitą układu. ---- * Hamiltonian jako energia całkowita Jeśli Hamiltonian nie zależy od czasu, to: {{CentrujWzór|<MATH> H = E = T + U </MATH>|8.9}} czyli Hamiltonian jest energią całkowitą układu. Jest to jedna z najważniejszych interpretacji Hamiltonianu w mechanice klasycznej. ---- * Zmienna cykliczna Z równania: {{CentrujWzór|<MATH> \frac{\partial H}{\partial q_k} = -\frac{\partial L}{\partial q_k} </MATH>|8.10}} wynika, że jeśli współrzędna uogólniona {{Formuła|<MATH>q_k\;</MATH>}} jest zmienną cykliczną, to Hamiltonian nie zależy od tej zmiennej. Oznacza to, że pęd sprzężony z tą współrzędną jest zachowany — jest to bezpośrednia konsekwencja, która mówi, że każdej symetrii odpowiada wielkość zachowana. {{CentrujWzór|<MATH>\frac{\partial L}{\partial q_k}=0\Rightarrow p_k=\text{const}</MATH>|8.12a}} === Przykłady funkcji Hamiltona w mechanice analitycznej === ==== Ciało umieszczone na sprężynie ==== Hamiltonian rozważanego przypadku jest napisany wzorem poniżej, którego definicją jest napisana w zmiennych pędu kulki i długości odkształcenia sprężynki od położenia równowagi. {{CentrujWzór|<MATH> H = \frac{p^2}{2m} + \frac{k}{2}x^2 </MATH>|8.11}} Prędkość i pęd uogólniony dla hamiltonianu {{LinkWzór|8.11}} liczymy ze wzorów: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> \dot{p} = -\,\frac{\partial H}{\partial x} = -kx </MATH>|8.12}} |2={{CentrujWzór|<MATH> \dot{x} = \frac{\partial H}{\partial p} = \frac{p}{m} </MATH>|8.13}} }} ==== Problem poruszających się planet w układzie współrzędnych kulistych ==== Wykorzystajmy wzór na prędkość ciała w układzie kulistym {{LinkWzór|1.28|Kinematyka i dynamika klasyczna opisu punktu materialnego/Kinematyka}} i napiszemy wtedy nasz Lagrangian w tymże układzie współrzędnych kulistych: {{CentrujWzór|<MATH> L = \frac{m}{2}\left(\dot{r}^{2} + r^{2}\dot{\phi}^{2} + r^{2}\dot{\theta}^{2}\sin^{2}\phi\right) + \frac{GMm}{r} </MATH>|8.14}} Następnym krokiem jest wyznaczenie pędów uogólnionych wykorzystując przy tym fakt {{LinkWzór|8.1}}: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> p_{r} = \frac{\partial L}{\partial \dot{r}} = m\dot{r} </MATH>|8.15}} |2={{CentrujWzór|<MATH> p_{\theta} = \frac{\partial L}{\partial \dot{\theta}} = mr^{2}\dot{\theta}\sin^{2}\phi </MATH>|8.16}} |3={{CentrujWzór|<MATH> p_{\phi} = mr^{2}\dot{\phi} </MATH>|8.17}} }} Hamiltonian {{Formuła|<MATH>H</MATH>}} {{LinkWzór|8.4}} możemy napisać jako sumę energii kinetycznej i potencjalnej, który jest wielkością stałą, w której występuje Lagrangian nasz rozważany {{LinkWzór|8.14}}, którą tą wielkość możemy zapisać, wykorzystując przy tym wyliczone pędy, które to zrobiliśmy w punktach {{LinkWzór|8.15}}, {{LinkWzór|8.16}} i {{LinkWzór|8.17}}: {{CentrujWzór|<MATH> H = T + U = \frac{1}{2m}\left( p_{r}^{2} + \frac{p_{\theta}^{2}}{r^{2}\sin^{2}\phi} + \frac{p_{\phi}^{2}}{r^{2}} \right) </MATH>|8.18}} ==== Cząstka o ładunku q w polu elektromagnetycznym ==== Zwykle lagrangian definiujemy jako różnicę energii kinetycznej i potencjalnej danej cząstki. Gdy potencjał wektorowy jest równy zero, to nasza definicja Lagrangianu jest zgodna z klasycznym opisem. Natomiast gdy potencjał wektorowy nie jest równy zero, to: {{CentrujWzór|<MATH> L = \frac{m}{2}v^{2} + q\,\vec{A}\cdot\vec{v} - qU </MATH>|8.19}} Wektor pędu uogólnionego na podstawie jej definicji dla współrzędnych {{LinkWzór|8.1}}: {{CentrujWzór|<MATH> \vec{p} = \frac{\partial L}{\partial \vec{v}} = m\vec{v} + q\vec{A} </MATH>|8.20}} Widzimy, że pęd cząstki w polu elektromagnetycznym na podstawie obliczeń {{LinkWzór|8.20}} jest równy pędowi klasycznemu cząstki plus pęd związany z polem magnetycznym, który powstaje, gdy cząstka ma pewien ładunek. Hamiltonian nasz piszemy wedle schematu: {{CentrujWzór|<MATH> H = \frac{(\vec{p} - q\vec{A})^{2}}{2m} + qU </MATH>|8.21}} == Nawiasy Poissona == Wprowadźmy teraz nawiasy Poissona, które definiujemy dla funkcji F i G w mechanice klasycznej: {{CentrujWzór|<MATH> \left\{F,G\right\}_{P} = \sum_{i=1}^{f} \left( \frac{\partial F}{\partial q_{i}}\frac{\partial G}{\partial p_{i}} - \frac{\partial F}{\partial p_{i}}\frac{\partial G}{\partial q_{i}} \right) </MATH>|8.22}} Wyznaczmy, czemu jest równy nawias Poissona, gdy pierwszą rozważaną funkcją jest F, a drugą funkcją jest G, i wiedząc jednocześnie, że zmienne {{Formuła|<MATH>p_{i}\;</MATH>}} i {{Formuła|<MATH>q_{i}\;</MATH>}} są niezależne od siebie. Na podstawie tego możemy powiedzieć, że nawias Poissona położenia uogólnionego {{Formuła|<MATH>q_{i}\;</MATH>}} i funkcji F jest równy pochodnej cząstkowej funkcji F względem pędu uogólnionego {{Formuła<MATH>p_{i}\;</MATH>}}: {{CentrujWzór|<MATH> \left\{q_{i},F\right\}_{P} = \sum_{j=1}^{f} \left( \frac{\partial q_{i}}{\partial q_{j}}\frac{\partial F}{\partial p_{j}} - \frac{\partial q_{i}}{\partial p_{j}}\frac{\partial F}{\partial q_{j}} \right) = \frac{\partial F}{\partial p_{i}} </MATH>|8.23}} A także możemy powiedzieć, że nawias Poissona pędu uogólnionego {{Formuła|<MATH>p_{i}\;</MATH>}} i funkcji F jest równy minus pochodnej cząstkowej funkcji F względem położenia uogólnionego {{Formuła|<MATH>q_{i}\;</MATH>}}: {{CentrujWzór|<MATH> \left\{p_{i},F\right\}_{P} = \sum_{j=1}^{f} \left( \frac{\partial p_{i}}{\partial q_{j}}\frac{\partial F}{\partial p_{j}} - \frac{\partial p_{i}}{\partial p_{j}}\frac{\partial F}{\partial q_{j}} \right) = -\,\frac{\partial F}{\partial q_{i}} </MATH>|8.24}} Również bardzo łatwo wyznacza się nawiasy Poissona, korzystając z obliczeń wynikłych {{LinkWzór|8.23}} i {{LinkWzór|8.24}}. Wtedy mówimy: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> \left\{q_{i},q_{j}\right\}_{P} = 0 </MATH>|8.25}} |2={{CentrujWzór|<MATH> \left\{p_{i},p_{j}\right\}_{P} = 0 </MATH>|8.26}} |3={{CentrujWzór|<MATH> \left\{q_{i},p_{j}\right\}_{P} = \delta_{ij} </MATH>|8.27}} }} Wyznaczmy, czemu jest równa pochodna zupełna funkcji F względem czasu, wiedząc, że zachodzą tożsamości Hamiltona {{LinkWzór|8.5}} i {{LinkWzór|8.6}}: {{CentrujWzór|<MATH> \frac{dF}{dt} = \sum_{i=1}^{f}\frac{\partial F}{\partial q_{i}}\dot{q}_{i} + \sum_{i=1}^{f}\frac{\partial F}{\partial p_{i}}\dot{p}_{i} + \frac{\partial F}{\partial t} = \sum_{i=1}^{f} \left( \frac{\partial F}{\partial q_{i}}\frac{\partial H}{\partial p_{i}} - \frac{\partial F}{\partial p_{i}}\frac{\partial H}{\partial q_{i}} \right) = \left\{F,H\right\}_{P} + \frac{\partial F}{\partial t} </MATH>|8.28}} Mając końcowy wynik uzyskany w punkcie {{LinkWzór|8.28}} i wiedząc, że funkcja F jest raz współrzędną położenia uogólnionego, a innym razem współrzędną pędu uogólnionego, powiemy, że obowiązują tożsamości: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> \dot{q}_{i} = \left\{q_{i},H\right\}_{P} </MATH>|8.29}} |2={{CentrujWzór|<MATH> \dot{p}_{i} = \left\{p_{i},H\right\}_{P} </MATH>|8.30}} }} Wielkość F jest zachowana, gdy pochodna zupełna tej wielkości nie zależy od czasu. Zatem na podstawie tożsamości {{LinkWzór|8.28}} możemy powiedzieć: {{CentrujWzór|<MATH> \left\{F,H\right\}_{P} + \frac{\partial F}{\partial t} = 0 </MATH>|8.31}} Gdy za funkcję F wstawimy we wzorze {{LinkWzór|8.28}} hamiltonian {{Formuła|<MATH>H</MATH>}}, to otrzymamy bardzo ważną tożsamość, którą udowodniliśmy w punkcie {{LinkWzór|8.8}}. Tutaj, wykorzystując nawiasy Poissona, mamy: {{CentrujWzór|<MATH> \frac{dH}{dt} = \left\{H,H\right\}_{P} + \frac{\partial H}{\partial t} \Rightarrow \frac{dH}{dt} = \frac{\partial H}{\partial t} </MATH>|8.32}} === Ważne elementarne tożsamości === Bardzo elementarnymi tożsamościami są takie, że w definicji nawiasu Poissona {{LinkWzór|8.22}} względem przestawień argumentów jest wyrażeniem funkcyjnym nieparzystym, a także, gdy jedna z funkcji w tej definicji jest funkcją stałą, które to te twierdzenia przedstawimy razem w jednej linijce: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> \left\{f,g\right\}_{P} = -\,\left\{g,f\right\}_{P} </MATH>|8.33}} |2={{CentrujWzór|<MATH> \left\{f,c\right\}_{P} = 0 </MATH>|8.34}} }} Tożsamością polegającą na różniczkowaniu cząstkowym nawiasu Poissona {{LinkWzór|8.22}} względem czasu „t” jest: {{CentrujWzór|<MATH> \frac{\partial}{\partial t}\left\{f,g\right\}_{P} = \left\{ \frac{\partial f}{\partial t},\,g \right\}_{P} + \left\{ f,\,\frac{\partial g}{\partial t} \right\}_{P} </MATH>|8.35}} === Tożsamość Jacobiego === Tożsamością Jacobiego względem funkcji {{Formuła|<MATH>>f,g,h\;</MATH>}} nazywamy tożsamość: {{CentrujWzór|<MATH> \left\{f,\left\{g,h\right\}_{P}\right\}_{P} + \left\{g,\left\{h,f\right\}_{P}\right\}_{P} + \left\{h,\left\{f,g\right\}_{P}\right\}_{P} = 0 </MATH>|8.36}} W celu dowodu tożsamości {{LinkWzór|8.36}} należy zauważyć, że nawiasy Poissona są jednorodną formą dwuliniową. Jeśli wyrażenie {{Formuła|<MATH>\{h,\{f,g\}_{P}\}_{P}\;</MATH>}} jest jednorodną funkcją pochodnych cząstkowych drugiego rzędu względem {{Formuła|<MATH>f\;</MATH>}} i {{Formuła|<MATH>g\;</MATH>}}, to po lewej stronie dowodzonej tożsamości pojawia się jednorodna funkcja drugich pochodnych. Wprowadźmy operatory {{Formuła|<MATH>D_{1}(\varphi)=\{g,\varphi\}_{P}\;</MATH>}} oraz {{Formuła|<MATH>D_{2}(\varphi)=\{h,\varphi\}_{P}\;</MATH>}}. Wtedy należy policzyć wyrażenie: {{CentrujWzór|<MATH> \left\{g,\left\{h,f\right\}_{P}\right\}_{P} + \left\{h,\left\{f,g\right\}_{P}\right\}_{P} = \left\{g,\left\{h,f\right\}_{P}\right\}_{P} - \left\{h,\left\{g,f\right\}_{P}\right\}_{P} = D_{1}(D_{2}(\varphi)) - D_{2}(D_{1}(\varphi)) </MATH>|8.37}} Wprowadźmy teraz definicję operatorów {{Formuła|<MATH>D_{1}\;</MATH>}} i {{Formuła|<MATH>D_{2}\;</MATH>}} przy pomocy kombinacji liniowych operatorów różniczkowania, które nie mogą zawierać pochodnych drugiego rzędu funkcji {{Formuła|<MATH>f\;</MATH>}}: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> D_{1} = \sum_{k}\xi_{k}\,\frac{\partial}{\partial x_{k}} </MATH>|8.38}} |2={{CentrujWzór|<MATH> D_{2} = \sum_{k}\eta_{k}\,\frac{\partial}{\partial x_{k}} </MATH>|8.39}} }} Wtedy możemy policzyć złożenie operatorów {{Formuła|<MATH>D_{1}\;</MATH>}} {{LinkWzór|8.38}} i {{Formuła|<MATH>D_{2}\;</MATH>}} {{LinkWzór|8.39}} na dwa sposoby: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> D_{1}D_{2} = \sum_{k l}\xi_{k}\eta_{l}\, \frac{\partial^{2}}{\partial x_{k}\partial x_{l}} + \sum_{k l}\xi_{k}\, \frac{\partial \eta_{l}}{\partial x_{k}}\, \frac{\partial}{\partial x_{l}} </MATH>|8.40}} |2={{CentrujWzór|<MATH> D_{2}D_{1} = \sum_{k l}\eta_{k}\xi_{l}\, \frac{\partial^{2}}{\partial x_{k}\partial x_{l}} + \sum_{k l}\eta_{k}\, \frac{\partial \xi_{l}}{\partial x_{k}}\, \frac{\partial}{\partial x_{l}} </MATH>|8.41}} }} A różnicę złożeń operatorów {{Formuła|<MATH>D_{1}\;</MATH>}} i {{Formuła|<MATH>D_{2}\;</MATH>}}, czyli {{LinkWzór|8.40}} i {{LinkWzór|8.41}}, możemy przedstawić poprzez: {{CentrujWzór|<MATH> D_{1}D_{2} - D_{2}D_{1} = \sum_{k l} \left( \xi_{k}\frac{\partial \eta_{l}}{\partial x_{k}} - \eta_{k}\frac{\partial \xi_{l}}{\partial x_{k}} \right) \frac{\partial}{\partial x_{l}} </MATH>|8.42}} Widzimy, że w lewej stronie tożsamości {{LinkWzór|8.37}} upraszczają się drugie pochodne cząstkowe względem funkcji \(f\) (to samo dotyczy funkcji \(g\) i \(h\)). Dla funkcji {{Formuła|<MATH>f\;</MATH>}}, dla której działanie {{Formuła|<MATH>-\,(D_{1}D_{2} - D_{2}D_{1})\;</MATH>}} jest nawiasem Poissona. {{CentrujWzór|<MATH> \{f,\{g,h\}_{P}\}_{P} </MATH>}} który jest pochodną pierwszego rzędu względem funkcji {{Formuła|<MATH>f\;</MATH>}} (analogicznie dla {{Formuła|<MATH>g\;</MATH>}} i {{Formuła|<MATH>h\;</MATH>}}, cała lewa strona tożsamości {{LinkWzór|8.36}} jest tożsamościowo równa zero. === Twierdzenie Poissona === Jeśli funkcje {{Formuła|<MATH>f\;</MATH>}} i {{Formuła|<MATH>g\;</MATH>}} są całkami ruchu, to nawias Poissona napisany poniżej też jest całką ruchu: {{CentrujWzór|<MATH> \{f,g\}_{P} = \operatorname{const} </MATH>|8.43}} Dowód tego twierdzenia, gdy {{Formuła|<MATH>f\;</MATH>}} i {{Formuła|<MATH>g\;</MATH>}} nie zależą jawnie od czasu (wtedy na podstawie {{LinkWzór|8.22}} pochodna zupełna względem czasu jest równa nawiasowi Poissona {{Formuła|<MATH>\{f,H\}_{P}</MATH>}}), mając to na uwadze, podstawiamy do tożsamości Jacobiego {{LinkWzór|8.36}}, gdzie {{Formuła|<MATH>h = H\;</MATH>}}. Otrzymujemy: {{CentrujWzór|<MATH> \{H,\{f,g\}_{P}\}_{P} + \{f,\{g,H\}_{P}\}_{P} + \{g,\{H,f\}_{P}\}_{P} = 0 </MATH>|8.44}} Z tożsamości {{LinkWzór|8.44}} wynika, że jeśli {{Formuła|<MATH>\{H,f\}_{P} = 0</MATH>}} oraz {{Formuła|<MATH>\{H,g\}_{P} = 0</MATH>}} (czyli pochodne zupełne funkcji {{Formuła|<MATH>f\;</MATH>}} i {{Formuła|<MATH>g\;</MATH>}} są równe zero), to również {{Formuła|<MATH>\{H,\{f,g\}_{P}\}_{P} = 0</MATH>}} jest równe zero. Zatem na podstawie {{LinkWzór|8.44}} zachodzi {{LinkWzór|8.43}}. Jeśli natomiast {{Formuła|<MATH>f\;</MATH>}} i {{Formuła|<MATH>g\;</MATH>}} zależą jawnie od czasu, wtedy na podstawie {{LinkWzór|8.28}} zachodzi tożsamość: {{CentrujWzór|<MATH> \frac{d}{dt}\{f,g\}_{P} = \frac{\partial}{\partial t}\{f,g\}_{P} - \{H,\{f,g\}_{P}\}_{P} </MATH>|8.45}} Do wzoru {{LinkWzór|8.45}} wykorzystujemy wyrażenie na pochodną cząstkową nawiasu Poissona {{LinkWzór|8.35}}, a także wynikłe z tożsamości Jacobiego {{LinkWzór|8.36}}. Wtedy: {{CentrujWzór|<MATH> \frac{d}{dt}\{f,g\}_{P} = \left\{ \frac{\partial f}{\partial t},\,g \right\}_{P} + \left\{ f,\,\frac{\partial g}{\partial t} \right\}_{P} + \{f,\{g,H\}_{P}\}_{P} + \{g,\{H,f\}_{P}\}_{P} = \left\{ \frac{\partial f}{\partial t} + \{f,H\}_{P},\,g \right\}_{P} + \left\{ f,\,\frac{\partial g}{\partial t} + \{g,H\}_{P} \right\}_{P} </MATH>|8.46}} Do obliczeń {{LinkWzór|8.46}} wykorzystujemy tożsamość {{LinkWzór|8.28}} dla pochodnej zupełnej funkcji. Wtedy twierdzenie Poissona w przypadku ogólnym ma postać: {{CentrujWzór|<MATH> \frac{d}{dt}\{f,g\}_{P} = \left\{ \frac{df}{dt},\,g \right\}_{P} + \left\{ f,\,\frac{dg}{dt} \right\}_{P} </MATH>|8.47}} == Transformacje uogólnionych położeń i pędów jako transformacje kanoniczne == Obierzmy sobie pędy i położenia uogólnione, które są spełnione w nowym układzie współrzędnych, które są funkcjami pędów i położeń uogólnionych i czasu, których to razem jest {{Formuła|<MATH>2f\;</MATH>}} współrzędnych: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>Q_{i} = Q_{i}(q_{k},p_{k},t)</MATH>|8.48}} |2={{CentrujWzór|<MATH>P_{i} = P_{i}(q_{k},p_{k},t)</MATH>|8.49}} }} W układzie współrzędnych uogólnionych po transformacji te współrzędne spełniają równania Hamiltona: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>\dot{Q}_{k} = \frac{\partial H}{\partial P_{k}}</MATH>|8.50}} |2={{CentrujWzór|<MATH>\dot{P}_{k} = -\,\frac{\partial H}{\partial Q_{k}}</MATH>|8.51}} }} Wariacja Lagrangianu zbudowanego za pomocą współrzędnych uogólnionych dla układu przed i po transformacji, w której wariacja tych lagrangianów jest równa zero, prowadzi do zależności: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>L = L' + \frac{dR_{1}}{dt}</MATH>|8.52}} |2={{CentrujWzór|<MATH>\int_{t_{0}}^{t_{1}} L = \int_{t_{0}}^{t_{1}} L' + R_{1}\Big|_{t_{0}}^{t_{1}}</MATH>|8.53}} }} Jeśli wykorzystamy wzór na hamiltonian {{LinkWzór|8.4}} i napiszemy Lagrangian, a następnie użyjemy tożsamości {{LinkWzór|8.52}}, otrzymujemy: {{CentrujWzór|<MATH> L = \sum_{k} p_{k}\dot{q}_{k} - H = \sum_{k} P_{k}\dot{Q}_{k} - H' + \frac{dR_{1}}{dt} \Rightarrow dR_{1} = \sum_{k} p_{k}\,dq_{k} - \sum_{k} P_{k}\,dQ_{k} + (H' - H)\,dt </MATH>|8.54}} Z drugiej strony różniczkę funkcji {{Formuła|<MATH>R_{1}\;</MATH>}} możemy rozpisać względem współrzędnych {{Formuła|<MATH>q_{k}\;</MATH>}}, {{Formuła|<MATH>Q_{k}\;</MATH>}} i czasu: {{CentrujWzór|<MATH> dR_{1} = \sum_{k}\frac{\partial R_{1}}{\partial q_{k}}\,dq_{k} + \sum_{k}\frac{\partial R_{1}}{\partial Q_{k}}\,dQ_{k} + \frac{\partial R_{1}}{\partial t}\,dt </MATH>|8.55}} Porównując {{LinkWzór|8.54}} i {{LinkWzór|8.55}}, otrzymujemy: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>p_{k} = \frac{\partial R_{1}}{\partial q_{k}}</MATH>|8.56}} |2={{CentrujWzór|<MATH>P_{k} = -\,\frac{\partial R_{1}}{\partial Q_{k}}</MATH>|8.57}} |3={{CentrujWzór|<MATH>H' = H + \frac{\partial R_{1}}{\partial t}</MATH>|8.58}} }} Wzory {{LinkWzór|8.56}}, {{LinkWzór|8.57}} i {{LinkWzór|8.58}} stanowią przepis na transformacje kanoniczne. Funkcja {{Formuła|<MATH>R_{1}\;</MATH>}} jest funkcją tworzącą. Wybierzmy funkcję tworzącą: {{Formuła|<MATH>R_{1} = \sum_{k} q_{k}Q_{k}</MATH>}}. Wtedy: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>p_{k} = Q_{k}</MATH>|8.59}} |2={{CentrujWzór|<MATH>P_{k} = -\,q_{k}</MATH>|8.60}} |3={{CentrujWzór|<MATH>H'(Q_{k},P_{k},t) = H(q_{k},P_{k},t) = H(-P_{k},Q_{k},t)</MATH>|8.61}} }} Omawiana transformacja zamienia rolami pęd uogólniony z położeniem uogólnionym: {{CentrujWzór|<MATH> H' = \frac{Q^{2}}{2m} + \frac{k}{2}P^{2} </MATH>|8.62}} Korzystając z równania {{LinkWzór|8.58}}: {{CentrujWzór|<MATH> \sum_{k} p_{k}\dot{q}_{k} - H = \sum_{k} P_{k}\dot{Q}_{k} - H' + \frac{\partial R_{1}}{\partial t} </MATH>|8.63}} Możemy podać funkcję tworzącą {{Formuła|<MATH>R_{1}\;</MATH>}} poprzez transformacje Legendre’a: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>R_{1} = R_{2}(q_{k},P_{k},t) - \sum_{k} P_{k}Q_{k}</MATH>|8.64}} |2={{CentrujWzór|<MATH>R_{1} = R_{3}(p_{k},Q_{k},t) + \sum_{k} p_{k}q_{k}</MATH>|8.65}} |3={{CentrujWzór|<MATH>R_{1} = R_{4}(p_{k},P_{k},t) + \sum_{k} p_{k}q_{k} - \sum_{k} P_{k}Q_{k}</MATH>|8.66}} }} Różniczki zupełne: {{CentrujWzór|<MATH> dR_{1} = \sum_{k}\frac{\partial R_{2}}{\partial q_{k}}dq_{k} + \sum_{k}\frac{\partial R_{2}}{\partial P_{k}}dP_{k} - \sum_{k} d(P_{k}Q_{k}) + \frac{\partial R_{2}}{\partial t}dt </MATH>|8.67}} {{CentrujWzór|<MATH> dR_{1} = \sum_{k}\frac{\partial R_{3}}{\partial p_{k}}dp_{k} + \sum_{k}\frac{\partial R_{3}}{\partial Q_{k}}dQ_{k} + \sum_{k} d(p_{k}q_{k}) + \frac{\partial R_{3}}{\partial t}dt </MATH>|8.68}} {{CentrujWzór|<MATH> dR_{1} = \sum_{k}\frac{\partial R_{4}}{\partial p_{k}}dp_{k} + \sum_{k}\frac{\partial R_{4}}{\partial P_{k}}dP_{k} + \sum_{k} d(p_{k}q_{k}) - \sum_{k} d(P_{k}Q_{k}) + \frac{\partial R_{4}}{\partial t}dt </MATH>|8.69}} Specjalna postać równania {{LinkWzór|8.54}}: {{CentrujWzór|<MATH> \begin{array}{l} \sum_{k} p_{k}dq_{k} + \sum_{k} Q_{k}dP_{k} - \sum_{k} d(P_{k}Q_{k}) + (H' - H)dt\\ -\sum_{k} q_{k}dp_{k} + \sum_{k} d(p_{k}q_{k}) - \sum_{k} P_{k}dQ_{k} + (H - H)dt\\ -\sum_{k} q_{k}dp_{k} + \sum_{k} d(p_{k}q_{k}) + \sum_{k} Q_{k}dP_{k} - \sum_{k} d(P_{k}Q_{k}) + (H' - H)dt \end{array} </MATH>|8.70}} Porównując {{LinkWzór|8.67}}, {{LinkWzór|8.68}}, {{LinkWzór|8.69}} z {{LinkWzór|8.70}} otrzymujemy: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>p_{k} = \frac{\partial R_{2}}{\partial q_{k}}</MATH>|8.71}} |2={{CentrujWzór|<MATH>Q_{k} = \frac{\partial R_{2}}{\partial P_{k}}</MATH>|8.72}} |3={{CentrujWzór|<MATH>H' = H + \frac{\partial R_{2}}{\partial t}</MATH>|8.73}} }} {{ElastycznyWiersz |1={{CentrujWzór|<MATH>P_{k} = -\,\frac{\partial R_{3}}{\partial Q_{k}}</MATH>|8.74}} |2={{CentrujWzór|<MATH>q_{k} = -\,\frac{\partial R_{3}}{\partial p_{k}}</MATH>|8.75}} |3={{CentrujWzór|<MATH>H' = H + \frac{\partial R_{3}}{\partial t}</MATH>|8.76}} }} {{ElastycznyWiersz |1={{CentrujWzór|<MATH>Q_{k} = \frac{\partial R_{4}}{\partial P_{k}}</MATH>|8.77}} |2={{CentrujWzór|<MATH>q_{k} = \frac{\partial R_{4}}{\partial p_{k}}</MATH>|8.78}} |3={{CentrujWzór|<MATH>H' = H + \frac{\partial R_{4}}{\partial t}</MATH>|8.79}} }} Przykładem funkcji tworzącej jest: {{Formuła|<MATH>R_{2} = \sum_{i} q_{i}P_{i}</MATH>}}. Wtedy: * {{Formuła|<MATH>p_{k} = P_{k}\;</MATH>}} * {{Formuła|<MATH>Q_{k} = q_{k}\;</MATH>}} * {{Formuła|<MATH>H' = H\;</MATH>}} Jest to funkcja tworząca tożsamościowa. Innym przykładem jest: {{Formuła|<MATH>R_{2} = \sum_{k} f(q_{k},t)P_{k}</MATH>}}. dla której: * {{Formuła|<MATH>Q_{k} = f(q_{k},t)\;</MATH>}} co jest dowolną funkcją współrzędnych położenia uogólnionego i czasu. == Równania Hamiltona-Jacobiego == Gdy hamiltonian {{Formuła|<MATH>H'</MATH>}} będzie miał najprostszą postać, gdy ten hamiltonian przyjmuje wartość zerową, wtedy możemy powiedzieć, że zachodzi: {{Formuła|<MATH>Q_{k} = \text{const}\;</MATH>}} oraz {{Formuła|<MATH>P_{k} = \text{const}\;</MATH>}}. Załóżmy, że istnieje pewna funkcja tworząca {{Formuła|<MATH>R_{2} = S(q_{k},P_{k},t)\;</MATH>}}. Wtedy wzory {{LinkWzór|8.71}} i {{LinkWzór|8.72}} przyjmują postać: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>p_{k} = \frac{\partial S}{\partial q_{k}}</MATH>|8.80}} |2={{CentrujWzór|<MATH>Q_{k} = \frac{\partial S}{\partial P_{k}}</MATH>|8.81}} }} Wtedy patrząc na wzór {{LinkWzór|8.73}}, który przedstawia równanie Hamiltona–Jacobiego przy warunku {{Formuła|<MATH>H' = 0</MATH>}}, i wykorzystując {{LinkWzór|8.80}}, otrzymujemy: {{CentrujWzór|<MATH> H\!\left(q_{k},\,\frac{\partial S}{\partial q_{k}},\,t\right) + \frac{\partial S}{\partial t} = 0 </MATH>|8.82|Obramuj}} Pochodną wielkości {{Formuła|<MATH>S</MATH>}} można wykorzystać w postaci wynikającej z {{LinkWzór|8.64}}, w której wiadomo, że {{Formuła|<MATH>S\;</MATH>}} to jest {{Formuła|<MATH>R_{2}\;</MATH>}}. Wyznaczając pochodną zupełną: {{CentrujWzór|<MATH> \frac{dS}{dt} = \frac{dR_{1}}{dt} + \frac{d}{dt}\sum_{k} P_{k}Q_{k} </MATH>|8.83}} Dalej wykorzystajmy wzór {{LinkWzór|8.54}} i dzieląc obustronnie przez różniczkę zupełną względem czasu {{Formuła|<MATH>t\;</MATH>}}: {{CentrujWzór|<MATH> \frac{dS}{dt} = \sum_{k} p_{k}\dot{q}_{k} - \sum_{k} P_{k}\dot{Q}_{k} + H' - H </MATH>|8.84}} Podstawiamy {{LinkWzór|8.84}} do {{LinkWzór|8.83}} przy założeniu {{Formuła|<MATH>H' = 0</MATH>}}, i pamiętając, że pochodne zupełne {{Formuła|<MATH>Q_{k}\;</MATH>}} i {{Formuła|<MATH>P_{k}\;</MATH>}} względem czasu są równe zero. Wtedy pochodna zupełna {{Formuła|<MATH>S\;</MATH>}} względem czasu jest określona wzorem {{LinkWzór|8.80}}. Korzystając z definicji Hamiltonianu {{LinkWzór|8.3}}, otrzymujemy: {{CentrujWzór|<MATH> \frac{dS}{dt} = \sum_{i} p_{i}\dot{q}_{i} - H = L </MATH>|8.85}} Na podstawie {{LinkWzór|8.85}}, całkując obie strony względem czasu, otrzymujemy wzór na funkcję tworzącą {{Formuła|<MATH>S\;</MATH>}}: {{CentrujWzór|<MATH> S = \int_{0}^{t} L(q_{k},\dot{q}_{k},t)\,dt </MATH>|8.86}} === Ruch ciała bez udziału sił (ruch swobodny) === Hamiltonian dla ruchu swobodnego jest definiowany z pomocą uogólnionych pędów, którego zapis dla naszego ruchu w przypadku nierelatywistycznym: {{CentrujWzór|<MATH> H = \frac{1}{2m}\left(p_{x}^{2} + p_{y}^{2} + p_{z}^{2}\right) </MATH>|8.87}} Jeśli wykorzystamy równość {{LinkWzór|8.82}}, która jest równaniem Hamiltona–Jacobiego, czyli za wielkości pędów uogólnionych podstawiamy wielkość zapisaną we wzorze {{LinkWzór|8.80}}, to możemy napisać: {{CentrujWzór|<MATH> \frac{1}{2m} \left[ \left(\frac{\partial S}{\partial x}\right)^{2} + \left(\frac{\partial S}{\partial y}\right)^{2} + \left(\frac{\partial S}{\partial z}\right)^{2} \right] + \frac{\partial S}{\partial t} = 0 </MATH>|8.88}} Jeśli dodatkowo napiszemy funkcję {{Formuła|<MATH>S(x,y,z,t)\;</MATH>}} jako sumę czterech składników zależnych od różnych zmiennych: {{CentrujWzór|<MATH> S = S_{1}(x) + S_{2}(y) + S_{3}(z) + S_{4}(t) </MATH>|8.89}} Układ opisywany hamiltonianem {{LinkWzór|8.87}} jest konserwatywny, więc energia całkowita jest stała: {{CentrujWzór|<MATH> E = H = -\,\frac{\partial S}{\partial t} </MATH>|8.90}} Wtedy równanie {{LinkWzór|8.88}}, na podstawie {{LinkWzór|8.89}} i {{LinkWzór|8.90}}, przyjmuje postać: {{CentrujWzór|<MATH> \frac{1}{2m} \left[ \left(\frac{\partial S_{1}}{\partial x}\right)^{2} + \left(\frac{\partial S_{2}}{\partial y}\right)^{2} + \left(\frac{\partial S_{3}}{\partial z}\right)^{2} \right] + E = 0 </MATH>|8.91}} Ponieważ każdy wyraz zależy od innej zmiennej, możemy napisać: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>S_{1} = P_{1}x</MATH>|8.92}} |2={{CentrujWzór|<MATH>S_{2} = P_{2}y</MATH>|8.93}} |3={{CentrujWzór|<MATH>S_{3} = P_{3}z</MATH>|8.94}} }} Mając rozwiązania {{LinkWzór|8.92}}, {{LinkWzór|8.93}}, {{LinkWzór|8.94}}, które są rozwiązaniem równania {{LinkWzór|8.91}}, i wykorzystując definicję pędu uogólnionego {{LinkWzór|8.80}}, energia układu wynosi: {{CentrujWzór|<MATH> \frac{1}{2m}\left(P_{1}^{2} + P_{2}^{2} + P_{3}^{2}\right) = E </MATH>|8.95}} Wykorzystując równość na energię {{LinkWzór|8.95}}, a także równość na funkcję {{Formuła<MATH>S\;</MATH>}} {{LinkWzór|8.90}}, otrzymujemy całkowite rozwiązanie: {{CentrujWzór|<MATH> S = P_{1}x + P_{2}y + P_{3}z - \frac{1}{2m}\left(P_{1}^{2} + P_{2}^{2} + P_{3}^{2}\right)t </MATH>|8.96}} Wyznaczmy teraz wielkości {{Formuła|<MATH>Q_{k}\;</MATH>}} wedle wzoru {{LinkWzór|8.81}}. W takim przypadku: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> \frac{\partial S}{\partial P_{1}} = x - \frac{P_{1}}{m}t = Q_{1} = \operatorname{const} </MATH>|8.97}} |2={{CentrujWzór|<MATH> \frac{\partial S}{\partial P_{2}} = y - \frac{P_{2}}{m}t = Q_{2} = \operatorname{const} </MATH>|8.98}} |3={{CentrujWzór|<MATH> \frac{\partial S}{\partial P_{3}} = z - \frac{P_{3}}{m}t = Q_{3} = \operatorname{const} </MATH>|8.99}} }} Wedle równości {{LinkWzór|8.97}}, {{LinkWzór|8.98}}, {{LinkWzór|8.99}} możemy napisać równania ruchu: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> x = \frac{P_{1}}{m}t + Q_{1} </MATH>|8.100}} |2={{CentrujWzór|<MATH> y = \frac{P_{2}}{m}t + Q_{2} </MATH>|8.101}} |3={{CentrujWzór|<MATH> z = \frac{P_{3}}{m}t + Q_{3} </MATH>|8.102}} }} === Ruch ciała w polu potencjalnych we współrzędnych kulistych === Rozpatrzmy hamiltonian we współrzędnych kulistych, mając hamiltonian {{LinkWzór|8.18}} bez udziału energii potencjalnej, który tutaj piszemy poprzez wzór z udziałem energii potencjalnej: {{CentrujWzór|<MATH> H = \frac{1}{2m} \left( p_{r}^{2} + \frac{p_{\phi}^{2}}{r^{2}} + \frac{p_{\theta}^{2}}{r^{2}\sin^{2}\phi} \right) + U(r,\theta,\phi) </MATH>|8.103}} Teraz przedstawmy potencjał {{Formuła|<MATH>U(r,\theta,\phi)\;</MATH>}} w postaci zależnej od funkcji {{Formuła|<MATH>a(r)\;</MATH>}}, {{Formuła|<MATH>b(\phi)\;</MATH>}} i {{Formuła|<MATH>c(\theta)\;</MATH>}}: {{CentrujWzór|<MATH> U(r,\theta,\phi) = a(r) + \frac{b(\phi)}{r^{2}} + \frac{c(\theta)}{r^{2}\sin\phi} </MATH>|8.104}} Ostatni wyraz ma wątpliwe zastosowanie fizyczne, więc pomijamy go i piszemy: {{CentrujWzór|<MATH> U(r,\phi) = a(r) + \frac{b(\phi)}{r^{2}} </MATH>|8.105}} Podstawiamy {{LinkWzór|8.105}} do {{LinkWzór|8.103}}, wykorzystując teorię Hamiltona–Jacobiego {{LinkWzór|8.82}} oraz wzór na pęd uogólniony {{LinkWzór|8.80}}. Otrzymujemy równanie: {{CentrujWzór|<MATH> \frac{1}{2m} \left(\frac{\partial S}{\partial r}\right)^{2} + a(r) + \frac{1}{2mr^{2}} \left[ \left(\frac{\partial S}{\partial\phi}\right)^{2} + 2m\,b(\phi) \right] + \frac{1}{2mr^{2}\sin^{2}\phi} \left(\frac{\partial S}{\partial\theta}\right)^{2} + \frac{\partial S}{\partial t} = 0 </MATH>|8.106}} Zmienna {{Formuła|<MATH>\theta\;</MATH>}} jest cykliczna, więc szukamy rozwiązania w postaci: {{CentrujWzór|<MATH> S = - Et + p_{\theta}\,\theta + S_{1}(r) + S_{2}(\phi) </MATH>|8.107}} Podstawiamy {{LinkWzór|8.107}} do {{LinkWzór|8.106}} i metodą separacji zmiennych otrzymujemy dwa równania z parametrem {{Formuła|<MATH>\beta\;</MATH>}}: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> \left(\frac{dS_{2}}{d\phi}\right)^{2} + 2m\,b(\phi) + \frac{p_{\theta}^{2}}{\sin^{2}\phi} = \beta </MATH>|8.108}} |2={{CentrujWzór|<MATH> \frac{1}{2m} \left(\frac{dS_{1}}{dr}\right)^{2} + a(r) + \frac{\beta}{2mr^{2}} = E </MATH>|8.109}} }} Końcowe rozwiązanie funkcji {{Formuła|<MATH>S\;</MATH>}} zapisujemy jako sumę dwóch całek: {{CentrujWzór|<MATH> S = - Et + p_{\theta}\,\theta + \int \sqrt{ \beta - 2m\,b(\phi) - \frac{p_{\theta}^{2}}{\sin^{2}\phi} }\,d\phi + \int \sqrt{ 2m\left(E - a(r)\right) - \frac{\beta}{r^{2}} }\,dr </MATH>|8.110}} === Ruch ciała w polu potencjalnych we współrzędnych parabolicznych === Wzory na współrzędne cylindryczne definiujemy jako zależne od współrzędnych {{Formuła|<MATH>\xi</MATH>}} i {{Formuła|<MATH>\eta</MATH>}}, które nazwiemy w tym przypadku współrzędnymi parabolicznymi: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>z = \frac{1}{2}(\xi - \eta)</MATH>|8.111}} |2={{CentrujWzór|<MATH>\rho = \sqrt{\xi\eta}</MATH>|8.112}} }} Wzór na promień otrzymujemy z twierdzenia Pitagorasa, podstawiając do jego definicji współrzędną {{Formuła|<MATH>z</MATH>}} {{LinkWzór|8.111}} i współrzędną radialną {{Formuła|<MATH>\rho</MATH>}} {{LinkWzór|8.112}}: {{CentrujWzór|<MATH> r = \sqrt{z^{2} + \rho^{2}} = \sqrt{\frac{1}{4}(\xi^{2} - 2\xi\eta + \eta^{2}) + \xi\eta} = \frac{1}{2}\sqrt{(\xi + \eta)^{2}} = \frac{1}{2}(\xi + \eta) </MATH>|8.113}} Patrząc na wzory {{LinkWzór|8.113}} i {{LinkWzór|8.111}}, otrzymujemy tożsamości: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>\xi = r + z</MATH>|8.114}} |2={{CentrujWzór|<MATH>\eta = r - z</MATH>|8.115}} }} Wzory {{LinkWzór|8.111}} i {{LinkWzór|8.112}} podstawiamy do definicji Lagrangianu: {{CentrujWzór|<MATH> L = \frac{1}{2}m(\dot{\rho}^{2} + \rho^{2}\dot{\theta}^{2} + \dot{z}^{2}) - U(\rho,\theta,z) = \frac{m}{8}(\xi + \eta) \left( \frac{\dot{\xi}^{2}}{\xi} + \frac{\dot{\eta}^{2}}{\eta} \right) + \frac{m}{2}\xi\eta\dot{\theta}^{2} - U(\xi,\eta,\theta) </MATH>|8.116}} Wyznaczamy pędy uogólnione: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>p_{\xi} = \frac{m}{4\xi}(\xi + \eta)\dot{\xi}</MATH>|8.117}} |2={{CentrujWzór|<MATH>p_{\eta} = \frac{m}{4\eta}(\xi + \eta)\dot{\eta}</MATH>|8.118}} |3={{CentrujWzór|<MATH>p_{\theta} = m\xi\eta\dot{\theta}</MATH>|8.119}} }} Hamiltonian: {{CentrujWzór|<MATH> H = \frac{2}{m} \frac{\xi p_{\xi}^{2} + \eta p_{\eta}^{2}}{\xi + \eta} + \frac{p_{\theta}^{2}}{2m\xi\eta} + U(\xi,\eta,\theta) </MATH>|8.120}} Potencjał pola w współrzędnych parabolicznych: {{CentrujWzór|<MATH> U = \frac{a(\xi) + b(\eta)}{\xi + \eta} = \frac{a(r+z) + b(r-z)}{2r} </MATH>|8.121}} Podstawiamy {{LinkWzór|8.121}} do {{LinkWzór|8.120}}, korzystając z równania Hamiltona–Jacobiego {{LinkWzór|8.82}}: {{CentrujWzór|<MATH> \frac{2}{m(\xi + \eta)} \left[ \xi\left(\frac{\partial S}{\partial\xi}\right)^{2} + \eta\left(\frac{\partial S}{\partial\eta}\right)^{2} \right] + \frac{1}{2m\xi\eta} \left(\frac{\partial S}{\partial\theta}\right)^{2} + \frac{a(\xi) + b(\eta)}{\xi + \eta} + \frac{\partial S}{\partial t} = 0 </MATH>|8.122}} Mnożymy równanie przez {{Formuła|<MATH>m(\xi+\eta)</MATH>}}: {{CentrujWzór|<MATH> 2\xi\left(\frac{\partial S}{\partial\xi}\right)^{2} + ma(\xi) + m\xi\frac{\partial S}{\partial t} + \frac{p_{\theta}^{2}}{2\xi} + 2\eta\left(\frac{\partial S}{\partial\eta}\right)^{2} + mb(\eta) + m\eta\frac{\partial S}{\partial t} + \frac{p_{\theta}^{2}}{2\eta} = 0 </MATH>|8.123}} Ponieważ {{Formuła|<MATH>\theta</MATH>}} jest zmienną cykliczną, funkcję {{Formuła|<MATH>S</MATH>}} zapisujemy: {{CentrujWzór|<MATH> S = - Et + p_{\theta}\theta + S_{1}(\xi) + S_{2}(\eta) </MATH>|8.124}} Podstawiamy do {{LinkWzór|8.123}} i metodą separacji zmiennych otrzymujemy: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> 2\xi\left(\frac{dS_{1}}{d\xi}\right)^{2} + ma(\xi) - mE\xi + \frac{p_{\theta}^{2}}{2\xi} = \beta </MATH>|8.125}} |2={{CentrujWzór|<MATH> 2\eta\left(\frac{dS_{2}}{d\eta}\right)^{2} + mb(\eta) - mE\eta + \frac{p_{\theta}^{2}}{2\eta} = -\beta </MATH>|8.126}} }} Końcowe rozwiązanie: {{CentrujWzór|<MATH> S = - Et + p_{\theta}\theta + \int \sqrt{ \frac{mE}{2} + \frac{\beta}{2\xi} - \frac{ma(\xi)}{2\xi} - \frac{p_{\theta}^{2}}{4\xi^{2}} }\,d\xi + \int \sqrt{ \frac{mE}{2} - \frac{\beta}{2\eta} - \frac{mb(\eta)}{2\eta} - \frac{p_{\theta}^{2}}{4\eta^{2}} }\,d\eta </MATH>|8.127}} === Ruch ciała w polu potencjalnych we współrzędnych eliptycznych === Wprowadźmy teraz współrzędne {{Formuła|<MATH>(\xi,\eta,\theta)\;</MATH>}}, które definiujemy poprzez współrzędne cylindryczne {{Formuła|<MATH>\rho</MATH>}} i {{Formuła|<MATH>z</MATH>}}: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>\rho = \sigma\sqrt{(\xi^{2}-1)(1-\eta^{2})}</MATH>|8.128}} |2={{CentrujWzór|<MATH>z = \sigma\xi\eta</MATH>|8.129}} }} Współrzędne eliptyczne definiuje się tak, że {{Formuła|<MATH>\xi\in[1,\infty)</MATH>}}, a {{Formuła|<MATH>\eta\in[-1,1]</MATH>}}. Zdefiniujmy odległości: * {{Formuła|<MATH>r_{1}=\sqrt{(z-\sigma)^{2}+\rho^{2}}</MATH>}} * {{Formuła|<MATH>r_{2}=\sqrt{(z+\sigma)^{2}+\rho^{2}}</MATH>}} Podstawiamy {{LinkWzór|8.128}} i {{LinkWzór|8.129}}: {{CentrujWzór|<MATH> r_{1} = \sigma(\xi-\eta) </MATH>|8.130}} {{CentrujWzór|<MATH> r_{2} = \sigma(\xi+\eta) </MATH>|8.131}} Zatem: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>\xi = \frac{r_{2}+r_{1}}{2\sigma}</MATH>|8.132}} |2={{CentrujWzór|<MATH>\eta = \frac{r_{2}-r_{1}}{2\sigma}</MATH>|8.133}} }} Podstawiamy {{LinkWzór|8.128}} i {{LinkWzór|8.129}} do lagrangianu w cylindrycznych: {{CentrujWzór|<MATH> L = \frac{m\sigma^{2}}{2}(\xi^{2}-\eta^{2}) \left( \frac{\dot{\xi}^{2}}{\xi^{2}-1} + \frac{\dot{\eta}^{2}}{1-\eta^{2}} \right) + \frac{m\sigma^{2}}{2}(\xi^{2}-1)(1-\eta^{2})\dot{\theta}^{2} - U(\xi,\eta,\theta) </MATH>|8.134}} Wyznaczamy pędy uogólnione: {{ElastycznyWiersz |1={{CentrujWzór|<MATH>p_{\xi} = m\sigma^{2}\frac{\xi^{2}-\eta^{2}}{\xi^{2}-1}\dot{\xi}</MATH>|8.135}} |2={{CentrujWzór|<MATH>p_{\eta} = m\sigma^{2}\frac{\xi^{2}-\eta^{2}}{1-\eta^{2}}\dot{\eta}</MATH>|8.136}} |3={{CentrujWzór|<MATH>p_{\theta} = m\sigma^{2}(\xi^{2}-1)(1-\eta^{2})\dot{\theta}</MATH>|8.137}} }} Hamiltonian: {{CentrujWzór|<MATH> H = \frac{1}{2m\sigma^{2}(\xi^{2}-\eta^{2})} \left[ (\xi^{2}-1)p_{\xi}^{2} + (1-\eta^{2})p_{\eta}^{2} + \left( \frac{1}{\xi^{2}-1} + \frac{1}{1-\eta^{2}} \right)p_{\theta}^{2} \right] + U(\xi,\eta,\theta) </MATH>|8.138}} Potencjał pola: {{CentrujWzór|<MATH> U = \frac{a(\xi)+b(\eta)}{\xi^{2}-\eta^{2}} = \frac{\sigma^{2}}{r_{1}r_{2}} \left[ a\!\left(\frac{r_{2}+r_{1}}{2\sigma}\right) + b\!\left(\frac{r_{2}-r_{1}}{2\sigma}\right) \right] </MATH>|8.139}} Równanie Hamiltona–Jacobiego: {{CentrujWzór|<MATH> -2m\sigma^{2}\frac{\partial S}{\partial t} = \frac{1}{\xi^{2}-\eta^{2}} \Bigg[ (\xi^{2}-1)\left(\frac{\partial S}{\partial\xi}\right)^{2} + (1-\eta^{2})\left(\frac{\partial S}{\partial\eta}\right)^{2} + \left( \frac{1}{\xi^{2}-1} + \frac{1}{1-\eta^{2}} \right) \left(\frac{\partial S}{\partial\theta}\right)^{2} + 2m\sigma^{2}a(\xi) + 2m\sigma^{2}b(\eta) \Bigg] </MATH>|8.140}} Ponieważ {{Formuła|<MATH>\theta</MATH>}} jest zmienną cykliczną: {{CentrujWzór|<MATH> S = - Et + p_{\theta}\theta + S_{1}(\xi) + S_{2}(\eta) </MATH>|8.141}} Podstawiamy do {{LinkWzór|8.140}} i grupujemy wyrazy: {{CentrujWzór|<MATH> 2m\sigma^{2}E(\xi^{2}-1) - (\xi^{2}-1)\left(\frac{dS_{1}}{d\xi}\right)^{2} - \frac{p_{\theta}^{2}}{\xi^{2}-1} - 2m\sigma^{2}a(\xi) + 2m\sigma^{2}E(1-\eta^{2}) - (1-\eta^{2})\left(\frac{dS_{2}}{d\eta}\right)^{2} - \frac{p_{\theta}^{2}}{1-\eta^{2}} - 2m\sigma^{2}b(\eta) = 0 </MATH>|8.142}} Separacja zmiennych: {{CentrujWzór|<MATH> 2m\sigma^{2}E(\xi^{2}-1) - (\xi^{2}-1)\left(\frac{dS_{1}}{d\xi}\right)^{2} - \frac{p_{\theta}^{2}}{\xi^{2}-1} - 2m\sigma^{2}a(\xi) = -\beta </MATH>|8.143}} {{CentrujWzór|<MATH> 2m\sigma^{2}E(1-\eta^{2}) - (1-\eta^{2})\left(\frac{dS_{2}}{d\eta}\right)^{2} - \frac{p_{\theta}^{2}}{1-\eta^{2}} - 2m\sigma^{2}b(\eta) = \beta </MATH>|8.144}} Końcowe rozwiązanie: {{CentrujWzór|<MATH> S = - Et + p_{\theta}\theta + \int \sqrt{ 2m\sigma^{2}E + \frac{\beta - 2m\sigma^{2}a(\xi)}{\xi^{2}-1} - \frac{p_{\theta}^{2}}{(\xi^{2}-1)^{2}} }\,d\xi + \int \sqrt{ 2m\sigma^{2}E - \frac{\beta + 2m\sigma^{2}b(\eta)}{1-\eta^{2}} - \frac{p_{\theta}^{2}}{(1-\eta^{2})^{2}} }\,d\eta </MATH>|8.145}} <noinclude>{{SkomplikowanaStronaKoniec}}</noinclude> ogf81d759a18fhcwhl5di3nym0qcdks Fale/Opis fal biegnących 0 21025 555458 467644 2026-09-10T13:46:32Z Persino 2851 555458 wikitext text/x-wiki <noinclude><!-- -->{{SkomplikowanaStronaStart<!-- -->| stopka strony = {{Kreska nawigacja|{{AktualnaKsiążka}}|{{NastępnyArtykuł}}|{{PoprzedniArtykuł}}}}<!-- -->}}</noinclude> == Fale biegnące w układach otwartych i zamkniętych — rozwinięcie maksymalnie komplikujące opis fizyczny i matematyczny == Będziemy rozpatrywali tutaj układy otwarte, tzn. nie mające zewnętrznych granic w sensie fizycznym i geometrycznym, co oznacza, że obszar, w którym rozchodzi się fala, nie jest ograniczony przez powierzchnie odbijające, a energia falowa może swobodnie „uciekać” w nieskończoność, bez powrotu do źródła. Powietrze na dworze dla rozchodzących się fal dźwiękowych zachowuje się jak układ otwarty, przy czym w tym idealizowanym opisie pomijamy wszelkie efekty powstałe w wyniku odbić fal dźwiękowych od budynków, drzew, przeszkód terenowych, a także od warstw atmosfery o zmiennej gęstości. W praktyce oznacza to, że traktujemy przestrzeń jako jednorodny, izotropowy ośrodek akustyczny, w którym fala dźwiękowa rozchodzi się bez odbić i bez rozpraszania, a jedynym istotnym parametrem jest prędkość propagacji fali oraz jej częstotliwość. Rozchodzące się fale dźwiękowe w zamkniętym pomieszczeniu zachowują się natomiast jak układ zamknięty, w którym istnieją wyraźnie zdefiniowane granice — ściany, sufit, podłoga — pełniące rolę powierzchni odbijających. W takim układzie energia falowa nie może swobodnie opuścić obszaru, lecz wielokrotnie odbija się od granic, prowadząc do zjawisk interferencji, powstawania fal stojących, rezonansów własnych pomieszczenia oraz złożonych rozkładów pola akustycznego. Jeśli ścianki tego pomieszczenia pokryjemy materiałem całkowicie pochłaniającym fale dźwiękowe, to wtedy taki układ zachowuje się jak układ otwarty w sensie energetycznym: energia fali jest pochłaniana na granicach, nie wraca do wnętrza, a fala nie tworzy trwałych struktur stojących. W celu zbudowania matematycznego opisu fal biegnących, rozpatrzmy tutaj fale, których wychylenia od stanu równowagi piszemy w punkcie odniesienia {{Formuła|<MATH>z=0</MATH>}}, przy czym wychylenie jest funkcją czasu i ma postać klasycznych drgań harmonicznych: {{CentrujWzór|<MATH> \psi(0,t)=A\cos\omega t\; </MATH>|4.1}} Wielkość {{Formuła|<MATH>\psi(0,t)</MATH>}} może reprezentować dowolną wielkość falową: wychylenie cząstki ośrodka, nadciśnienie akustyczne, prędkość cząstki, bądź inną skalarną lub wektorową składową pola falowego, sprowadzoną do jednej współrzędnej. Amplituda {{Formuła|<MATH>A</MATH>}} jest stała w czasie (dla idealnych drgań harmonicznych), a częstotliwość kołowa {{Formuła|<MATH>\omega</MATH>}} określa szybkość zmian fazy w czasie. Rozpatrzmy teraz układ, który zachowuje się tak, jak w punkcie {{Formuła|<MATH>z=0</MATH>}} w czasie {{Formuła|<MATH>t'</MATH>}}, przy czym czas {{Formuła|<MATH>t'</MATH>}} piszemy w zależności od czasu laboratoryjnego {{Formuła|<MATH>t</MATH>}} oraz położenia {{Formuła|<MATH>z</MATH>}}, w którym rozchodzi się fala z prędkością fazową {{Formuła|<MATH>v_{f}</MATH>}}. Idea jest następująca: fala, która w chwili {{Formuła|<MATH>t</MATH>}} ma pewną fazę w punkcie {{Formuła|<MATH>z=0</MATH>}}, pojawi się w punkcie o współrzędnej {{Formuła|<MATH>z</MATH>}} dopiero po czasie równym {{Formuła|<MATH>z/v_{f}</MATH>}}. Zatem czas „lokalny” w punkcie {{Formuła|<MATH>z</MATH>}} jest opóźniony względem czasu w punkcie odniesienia: {{CentrujWzór|<MATH> t'=t-\frac{z}{v_{f}}\; </MATH>|4.2}} Równość {{LinkWzór|4.2}} jest kluczowa, ponieważ wyraża fundamentalną własność fal: przesunięcie w przestrzeni jest równoważne przesunięciu w czasie, przy czym współczynnikiem proporcjonalności jest prędkość fazowa {{Formuła|<MATH>v_{f}</MATH>}}. Możemy teraz podstawić wzór {{LinkWzór|4.2}} do wzoru {{LinkWzór|4.1}}, w ten sposób otrzymać równość zależną od czasu {{Formuła|<MATH>t</MATH>}} i położenia zetowego {{Formuła|<MATH>z</MATH>}}, w której znajduje się fala biegnąca: {{CentrujWzór|<MATH> \psi(z,t) = \psi(0,t') = A\cos\omega t' = A\cos\omega\left(t-\frac{z}{v_{f}}\right) = A\cos\left(\omega t-\frac{\omega z}{v_{f}}\right)\; </MATH>|4.3}} Równość {{LinkWzór|4.3}} jest już pełnym opisem fali biegnącej w jednowymiarowym ośrodku, w którym fala propaguje się wzdłuż osi {{Formuła|<MATH>z</MATH>}} z prędkością fazową {{Formuła|<MATH>v_{f}</MATH>}}. Widzimy, że faza drgań zależy zarówno od czasu, jak i od położenia, a przesunięcie fazy w przestrzeni jest proporcjonalne do {{Formuła|<MATH>z</MATH>}} i odwrotnie proporcjonalne do {{Formuła|<MATH>v_{f}</MATH>}}. Dla fal biegnących, które są funkcją kosinus, zapisaną w zależności od liczby falowej {{Formuła|<MATH>k</MATH>}} i częstotliwości kołowej {{Formuła|<MATH>\omega</MATH>}}, przedstawiamy standardowy wzór: {{CentrujWzór|<MATH> \psi(z,t)=A\cos(\omega t-kz)\; </MATH>|4.4}} Wzór {{LinkWzór|4.4}} jest kanoniczną postacią fali harmonicznej biegnącej wzdłuż osi {{Formuła|<MATH>z</MATH>}}. Liczba falowa {{Formuła|<MATH>k</MATH>}} określa, jak szybko faza zmienia się w przestrzeni: im większe {{Formuła|<MATH>k</MATH>}}, tym krótsza długość fali i tym szybciej zmienia się faza w funkcji położenia. Możemy teraz porównać wzór {{LinkWzór|4.4}} ze wzorem {{LinkWzór|4.3}}, które oznaczają to samo, w ten sposób dostajemy wniosek, że liczba falowa jest stosunkiem częstotliwości kołowej drgań harmonicznych i prędkości fazowej drgań: {{CentrujWzór|<MATH> k=\frac{\omega}{v_{f}}\; </MATH>|4.5}} Równość {{LinkWzór|4.5}} jest pierwszą fundamentalną relacją między parametrami fali: częstotliwością kołową {{Formuła|<MATH>\omega</MATH>}}, liczbą falową {{Formuła|<MATH>k</MATH>}} i prędkością fazową {{Formuła|<MATH>v_{f}</MATH>}}. Z tej relacji możemy natychmiast napisać definicję prędkości fazowej w zależności od częstotliwości kołowej i liczby falowej, która jest ich stosunkiem. W tej samej linijce napiszmy dwa następne wzory określające prędkość fazową, która za pierwszym razem jest iloczynem długości falowej {{Formuła|<MATH>\lambda</MATH>}} i częstotliwości {{Formuła|<MATH>\nu</MATH>}}, a za drugim razem jest stosunkiem długości falowej przez okres drgań {{Formuła|<MATH>T</MATH>}} fal biegnących: {{ElastycznyWiersz |1={{CentrujWzór|<MATH> v_{f}=\frac{\omega}{k}\; </MATH>|4.6}} |2={{CentrujWzór|<MATH> v_{f}=\lambda\nu\; </MATH>|4.7}} |3={{CentrujWzór|<MATH> v_{f}=\frac{\lambda}{T}\; </MATH>|4.8}} }} Równości {{LinkWzór|4.6}}–{{LinkWzór|4.8}} są różnymi, lecz równoważnymi definicjami prędkości fazowej. Wzór {{LinkWzór|4.6}} wiąże prędkość fazową bezpośrednio z parametrami falowymi {{Formuła|<MATH>\omega</MATH>}} i {{Formuła|<MATH>k</MATH>}}, wzór {{LinkWzór|4.7}} jest klasyczną definicją prędkości fali jako iloczynu długości fali i częstotliwości, natomiast {{LinkWzór|4.8}} wyraża prędkość jako stosunek długości fali do okresu drgań. Aby jeszcze bardziej skomplikować i uściślić opis fazy fali, zdefiniujemy funkcję fazową, która jest zdefiniowana w zależności od częstotliwości kołowej {{Formuła|<MATH>\omega</MATH>}} i liczby falowej {{Formuła|<MATH>k</MATH>}}, a także od zmiennych czasu {{Formuła|<MATH>t</MATH>}} i położenia {{Formuła|<MATH>z</MATH>}}: {{CentrujWzór|<MATH> \varphi(z,t)=\omega t-kz\; </MATH>|4.9}} Funkcja {{Formuła|<MATH>\varphi(z,t)</MATH>}} opisuje lokalną fazę drgań w dowolnym punkcie przestrzeni i w dowolnej chwili czasu. Linie stałej fazy {{Formuła|<MATH>\varphi=\operatorname{const}</MATH>}} reprezentują powierzchnie (w jednowymiarowym przypadku — punkty) o identycznym stanie drgań, co jest kluczowe przy analizie prędkości propagacji fali. Podamy teraz inną metodę wyprowadzenia wzoru na prędkość fazową. Na podstawie definicji funkcji fazowej {{LinkWzór|4.9}}, której różniczka jest napisana z definicji różniczki zupełnej, wyrażamy ją w zależności od częstotliwości kołowej {{Formuła|<MATH>\omega</MATH>}} i liczby falowej {{Formuła|<MATH>k</MATH>}}: {{CentrujWzór|<MATH> d\varphi = \frac{\partial\varphi}{\partial t}dt + \frac{\partial\varphi}{\partial z}dz = \omega dt-kdz\; </MATH>|4.10}} Rozpatrzmy teraz przypadek, gdy różniczka funkcji fazowej jest równa dokładnie zero, tzn. {{Formuła|<MATH>d\varphi=0</MATH>}}. Oznacza to, że poruszamy się wzdłuż linii stałej fazy, czyli śledzimy ruch punktu, w którym faza drgań nie zmienia się w czasie. W ten sposób dostajemy równość z definicji prędkości znaną z kinematyki klasycznej, którą nazwiemy prędkością fazową: {{CentrujWzór|<MATH> v_{f} = \left(\frac{dz}{dt}\right)_{\varphi=\operatorname{const}} = \frac{\omega}{k}\; </MATH>|4.11}} Równość {{LinkWzór|4.11}} jest niezwykle istotna, ponieważ pokazuje, że prędkość fazowa jest prędkością, z jaką przesuwa się w przestrzeni punkt o stałej fazie drgań. Jest to definicja czysto kinematyczna, wynikająca z geometrii funkcji fazowej w przestrzeni {{Formuła|<MATH>(z,t)</MATH>}}. W połączeniu z wcześniejszymi definicjami {{LinkWzór|4.6}}–{{LinkWzór|4.8}} tworzy ona spójną strukturę pojęciową, w której prędkość fazowa jest jednocześnie parametrem falowym, wielkością kinematyczną oraz elementem łączącym opis czasowy i przestrzenny fali. Cały powyższy opis — od rozróżnienia układów otwartych i zamkniętych, poprzez konstrukcję funkcji {{Formuła|<MATH>\psi(z,t)</MATH>}}, aż po definicję funkcji fazowej {{Formuła|<MATH>\varphi(z,t)</MATH>}} i prędkości fazowej {{Formuła|<MATH>v_{f}</MATH>}} — stanowi fundament pełnej teorii fal biegnących w jednowymiarowych ośrodkach, zarówno ciągłych, jak i dyskretnych. W dalszych częściach można tę strukturę komplikować jeszcze bardziej, wprowadzając prędkość grupową, dyspersję, złożone widma częstotliwościowe oraz przejście do opisów w przestrzeni Fouriera. == Związek dyspersyjny dla wahadeł matematycznych sprzężonych przy pomocy sprężynek == Równanie różnicowo-różniczkowe możemy napisać wzorem {{LinkWzór|2.85|Układy_fizyczne,_a_jego_drgania_o_wielu_stopniach_swobody}}, które dla porządku dziennego tutaj przepisujemy: {{CentrujWzór|<math>\ddot{\psi}_n=-{{g}\over{l}}\psi_n+{{K}\over{M}}\left(\psi_{n+1}-\psi_n\right)-{{K}\over{M}}(\psi_n-\psi_{n-1})\;</MATH>|4.12}} Dla fal biegnących, którego wychylenie od stanu równowagi jest opisane w punkcie {{LinkWzór|4.4}}, dla której drugą pochodną cząstkową względem czasu piszemy: {{CentrujWzór|<MATH>\ddot{\psi}_n=-\omega^2\psi_n\;</MATH>|4.13}} Równanie {{LinkWzór|4.12}} możemy zapisać, przy pomocy zachodzącej tożsamości dla fal biegnących {{LinkWzór|4.13}}, która jest drugą pochodną cząstkową wychylenia podłużnego względem czasu, która jest iloczynem wychylenia od stanu równowagi &psi;{{Sub|n}} przez kwadrat częstotliwości kołowej drgań i to wszystko wzięte z minusem: {{CentrujWzór|<MATH>\omega^2={{g}\over{l}}+{{2K}\over{M}}\left(1-{{\psi_{n+1}+\psi_{n-1}}\over{2\psi_n}}\right)\;</MATH>|4.13a}} === Harmoniczne fale biegnące === Dla fal sinusoidalnych fal biegnących wychylenie od stanu równowagi możemy przepisać w zależności od częstotliwości kołowej i liczby falowej w zależności od zmiennej czasowej i położenia z=na: {{CentrujWzór|<MATH>\psi_n=A\cos(\omega t+\varphi-kz)\;</MATH>|4.14}} Suma wychyleń {{LinkWzór|4.14}} dla n+1 i n-1 piszemy przy pomocy wychylenia od stanu równowagi dla n w sposób: {{CentrujWzór|<MATH>\psi_{n+1}+\psi_{n-1}=A\cos(\omega t+\varphi+kna+ka)+A\cos(\omega t+\varphi+kna-ka)=2\psi_n\cos ka\;</MATH>|4.15}} Związek {{LinkWzór|4.15}} możemy podstawić do {{LinkWzór|4.13}}, w ten sposób dostajemy związek dyspersyjny na kwadrat częstotliwości kołowej w zależności od liczby falowej w postaci: {{CentrujWzór|<MATH>\omega^2={{g}\over{l}}-{{2K}\over{M}}\sin^2{{ka}\over{2}}\;</MATH>|4.16}} === Eksponencjalne fale biegnące w układzie otwartym === Dla fal eksponencjalnych biegnących w układzie otwartym wychylenie od stanu równowagi dla z=na zależnego od częstotliwości kołowej i stałej zaniku fal &chi;, piszemy: {{CentrujWzór|<MATH>\psi(z,t)=Ae^{-\chi z}\cos\omega t\;</MATH>|4.17}} Suma wychyleń {{LinkWzór|4.17}} dla n+1 i n-1 piszemy przy pomocy wychylenia od stanu równowagi dla n w sposób: {{CentrujWzór|<MATH>\psi_{n+1}+\psi_{n-1}=Ae^{-\chi kna}e^{-\chi ka}\cos \omega t+Ae^{\chi ka}e^{\chi na}\cos\omega t=Ae^{-\chi kna}\cos\omega t\left(e^{\chi ka}+e^{-\chi ka}\right)=\psi_n\left(e^{\chi ka}+e^{-\chi ka}\right)\;</MATH>|4.18}} Tożsamość napisana w punkcie {{LinkWzór|4.18}} podstawiamy do {{LinkWzór|4.13}}, przy wykorzystaniu definicji funkcji hiperbolicznych, w ten sposób mamy związek dyspersyjny na kwadrat częstotliwości kołowej względem wielkości stałej zaniku dla rozchodzących się fal biegnących eksponencjalnych: {{CentrujWzór|<MATH>\omega^2=\omega_0^2-{{4K}\over{M}}\sinh^2{{\chi a}\over{2}}\;</MATH>|4.19}} === Przemienne eksponencjalne fale biegnące w układzie otwartym === Dla fal eksponencjalnych biegnących w układzie otwartym wychylenie od stanu równowagi, dla z=na zależnego od częstotliwości kołowej i stałej zaniku fal &chi;, piszemy w postaci: {{CentrujWzór|<MATH>\psi(z,t)=A(-1)^ne^{-\chi z}\cos\omega t\;</MATH>|4.20}} Suma wychyleń {{LinkWzór|4.20}} dla n+1 i n-1 piszemy przy pomocy wychylenia od stanu równowagi dla n: {{CentrujWzór|<MATH>\psi_{n+1}+\psi_{n-1}=-A(-1)^ne^{-\chi kna}e^{-\chi ka}\cos \omega t-Ae^{\chi ka}(-1)^ne^{\chi na}\cos\omega t=-Ae^{-\chi kna}(-1)^n\cos\omega t\left(e^{\chi ka}+e^{-\chi ka}\right)=-\psi_n\left(e^{\chi ka}+e^{-\chi ka}\right)\;</MATH>|4.21}} Tożsamość napisana w punkcie {{LinkWzór|4.21}} podstawiamy do {{LinkWzór|4.13}}, przy wykorzystaniu definicji funkcji hiperbolicznych, w ten sposób mamy związek dyspersyjny na kwadrat częstotliwości kołowej w zależności od stałej zaniku &chi; dla rozchodzących się fal biegnących: {{CentrujWzór|<MATH>\omega^2=\omega_0^2+{{4K}\over{M}}\cosh^2{{\chi a}\over{2}}\;</MATH>|4.22}} === Prędkość fazowa fal poprzecznych rozchodzącej się w strunie obciążonymi ciężarkami === Prędkość fazowa rozchodzenia się fal w strunie obciążonej sprężynkami możemy napisać patrząc na definicję kwadratu częstotliwości kołowej {{LinkWzór|2.71|Układy_fizyczne,_a_jego_drgania_o_wielu_stopniach_swobody}}, z którego wyznaczymy samą częstotliwość, co po podzieleniu jego obustronnie przez liczbę falową "k" otrzymamy prędkość fazową: {{CentrujWzór|<MATH>v_f={{\omega}\over{k}}=2\sqrt{{T_0}\over{Ma}}{{\sin{{ka}\over{2}}}\over{k}}\;</MATH>|4.23}} Biorąc przypadek dla małej liczby falowej "k", wtedy obliczenia dla wzoru {{LinkWzór|4.23}} przeprowadzamy tak jak w punkcie {{LinkWzór|2.77|Układy_fizyczne,_a_jego_drgania_o_wielu_stopniach_swobody}}, w ten sposób możemy otrzymać wzór na prędkość fazową w przybliżeniu małej liczby falowej wykorzystując przy tym definicję masowej gęstości liniowej, zatem dokonajmy tychże obliczeń: {{CentrujWzór|<MATH>v_f=\sqrt{{T_0a}\over{M}}=\sqrt{{{T_0a}\over{M}}}{{\sin{{ka}\over{2}}}\over{{{ka}\over{2}}}}=\sqrt{{{T_0a}\over{M}}}{{{{ka}\over{2}}-{{1}\over{6}}\left({{ka}\over{2}}\right)^3+...}\over{{{ka}\over{2}}}}=\sqrt{{{T_0a}\over{M}}}\left(1-{{1}\over{24}}(ka)^2+...\right)\simeq\sqrt{{T_0a}\over{M}}=\sqrt{{{T_0}\over{\rho_0}}}\;</MATH>|4.24}} === Prędkość fazowa fal podłużnych rozchodzącej się w strunie obciążonymi ciężarkami === Prędkość rozchodzenia się fal w zależności liczby falowej możemy przestawić wykorzystując wzór na kwadrat częstotliwości kołowej {{LinkWzór|2.79|Układy_fizyczne,_a_jego_drgania_o_wielu_stopniach_swobody}} z którego wyznaczymy samą częstotliwość, co po podzieleniu jego przez liczbę falową "k", w ten sposób dostajemy wzór na prędkość fazową rozchodzenia się fal: {{CentrujWzór|<MATH>v_f={{\omega}\over{k}}=2\sqrt{{{K}\over{M}}}{{\sin{{ka}\over{2}}}\over{k}}\;</MATH>|4.25}} Dokonując podobnych obliczeń jak w punkcie {{LinkWzór|4.24}} dla k bardzo małego, w ten sposób wykorzystując definicję gęstości liniowej, by otrzymać później tożsamość: {{CentrujWzór|<MATH>v_f=\sqrt{{Ka^2}\over{M}}{{\sin{{ka}\over{2}}}\over{{{ka}\over{2}}}}\simeq\sqrt{{Ka^2}\over{M}}=\sqrt{{Ka}\over{\rho_0}}=\sqrt{{{K_LL}\over{\rho_0}}}\;</MATH>|4.26}} bo zachodzi K{{Sub|L}}L=Ka, w którym każda sprężyna ma współczynnik sprężystości równej K, sprężynki wszystkie razem wzięte mają współczynnik sprężystości K{{Sub|L}} i dlatego tak powinniśmy napisać. == Prędkość rozchodzenia się dźwięku w naczyniu == Będziemy tutaj wyprowadzać równanie rządzącego przy rozchodzącego się dźwięku w danym ośrodku znając pochodną zupełną ciśnienia względem objętości w stanie równowagi danego ośrodka, tutaj będziemy się zajmować powietrzem, ale związek , który tutaj otrzymamy jest zgodny dla innych ośrodków sprężystych a także dla powietrza. Powietrze znajdujące się w naczyniu zachowuje się jak sprężynka o stałej sprężystości K{{Sub|L}}, którego długość jest L{{Sub|1}}, która zostaje ściśnięta do długości L, a siła wywierana na ścianki naczynia jest wyrażona wzorem: {{CentrujWzór|<MATH>F=-K_L(L-L_1)\;</MATH>|4.27}} Możemy zróżniczkować tożsamość {{LinkWzór|4.27}}, w ten sposób otrzymać równość różniczkową: {{CentrujWzór|<math>dF=-K_LdL\;</MATH>|4.28}} Z drugiej jednak strony powiedźmy, gdy nastąpi zmiana długości sprężyny dL towarzyszy zmiana ciśnienia dp i zmiana siły wywieranej dF, zatem tą siłę piszemy: {{CentrujWzór|<MATH>dF=Adp=A\left({{dp}\over{dV}}\right)_0A dL=A^2\left({{dp}\over{dV}}\right)dL\;</MATH>|4.29}} Porównując wzory {{LinkWzór|4.29}} z {{LinkWzór|4.28}} możemy napisać tożsamość na współczynnik sprężystości powietrza: {{CentrujWzór|<MATH>K_L=-A^2{{dp}\over{dV}}\;</MATH>|4.30}} Gęstość liniową masy możemy powiązać z gęstością objętościową, która jak udowodnimy gęstość liniowa masy jest równa iloczynowi gęstości objętościowej pomnożonej przez powierzchnię przekroju ośrodka, w której dźwięk rozchodzi się względem linii prostopadłej względem tego przekroju, według związku: {{CentrujWzór|<MATH>\rho_{0L}L_0=\rho_{0V}AL_0\Rightarrow \rho_{0L}=\rho_{0V}A\;</MATH>|4.31}} Wzory {{LinkWzór|4.30}} i {{LinkWzór|4.31}} możemy podstawić do wzoru końcowego {{LinkWzór|4.24}}, w ten sposób otrzymujemy końcową równość na kwadrat prędkości rozchodzenia się dźwięku: {{CentrujWzór|<MATH>v^2={{K_LL}\over{\rho_{0L}}}=\left({{-A^2{{dp}\over{dV}}L}\over{\rho_{0V}A}}\right)=-{{-AL\left({{dp}\over{dV}}\right)_0}\over{\rho_{0V}}}=-{{V_0}\over{\rho_0}}\left({{dp}\over{dV}}\right)_0\;</MATH>|4.32}} === Prędkość rozchodzenia się fal w powietrzu === Biorąc równanie stanu gazu doskonałego dla izotermy, czyli pod stałą temperaturą, wyznaczać z niego będziemy ciśnienie panujące w panujące gazie w zależności od jej objętości: {{CentrujWzór|<MATH>pV=p_0V_0\Rightarrow p={{p_0 V_0}\over{V}}\;</MATH>|4.33}} Wyznaczmy teraz pierwszą pochodną zupełną ciśnienia {{LinkWzór|4.33}} względem objętości V i kładąc V=V{{Sub|0}}: {{CentrujWzór|<MATH>{{dp}\over{dV}}=-{{p_0V_0}\over{V^2}}\Rightarrow V_0\left({{dp}\over{dV}}\right)_0=-p_0\;</MATH>|4.34}} Wzór {{LinkWzór|4.34}} podstawiamy do {{LinkWzór|4.32}}, w ten sposób dostajemy równość, którą wyrażamy w zależności od ciśnienia gazu i jego gęstości objętościowej: {{CentrujWzór|<MATH>v=\sqrt{{{p_0}\over{\rho_0}}}\;</MATH>|4.35}} === Poprawka do modelu dotyczącego prędkości rozchodzenia się dźwięku === Model opisujący prędkość dźwięku w gazie opisaną w punkcie {{LinkWzór|4.35}} jest modelem tylko dobrym, tylko jest jedyna różnica, że w tym modelu prędkość dźwięku jest napisana z błędem 15% w porównaniem z prędkością dźwięku policzonego z doświadczenia, zatem ten model zawiera pewne błędy, który świadczy, że zastosowaliśmy model gazu doskonałego dla stałej temperatury układu. Lepszym modelem jest równanie adiabaty. W porównaniu modelu Boyla i adiabaty przy sprężaniu gazu ciśnienie jest nieco większe a przy rozprężaniu jest nieco mniejsze. Podczas rozprężaniu i sprężenia gazu temperatura gazu nie jest w rzeczywiści stała w danym punkcie przestrzeni. Biorąc równanie stanu gazu doskonałego dla adiabaty, czyli układu nie wymieniającego się energii z otoczeniem, wyznaczać z niego będziemy ciśnienie panujące w gazie w zależności od jej objętości: {{CentrujWzór|<math>pV^{\kappa}=p_0V^{\kappa}_0\Rightarrow p=p_0V_0^{\kappa}V^{-\kappa}\;</MATH>|4.36}} Wyznaczmy teraz pierwszą pochodną zupełną ciśnienia {{LinkWzór|4.37}} względem objętości V i kładąc V=V{{Sub|0}}, by w ten sposób otrzymać równość: {{CentrujWzór|<MATH>{{dp}\over{dv}}=-\kappa p_0V^{\kappa}_0V^{-\kappa-1}\Rightarrow V_0\left({{dp}\over{dV}}\right)_0=-\kappa p_0\;</MATH>|4.37}} Wzór {{LinkWzór|4.37}} podstawiamy do {{LinkWzór|4.32}}, w ten sposób otrzymać równość na prędkość fazową rozchodzenia się fal dźwiękowych, którą wyrażamy w zależności od ciśnienia gazu i jego gęstości objętościowej, która panuje w stanie równowagi: {{CentrujWzór|<MATH>v=\sqrt{{{\kappa p_0}\over{\rho_0}}}\;</MATH>|4.38}} === Prędkość fazowa w linii przesyłowym === Częstotliwość fazową linii przesyłowej możemy przestawić poprzez wzór {{LinkWzór|2.83|Układy_fizyczne,_a_jego_drgania_o_wielu_stopniach_swobody}}, który możemy przestawić w granicy małych liczb falowych w postaci: {{CentrujWzór|<MATH>\omega^2={{4}\over{LC}}\sin^2 {{ka}\over{2}}\simeq {{4}\over{LC}}{{k^2a^2}\over{4}}={{a^2k^2}\over{LC}}\;</MATH>|4.39}} Kwadrat prędkości fazowej przestawiamy z jego definicji {{LinkWzór|4.11}} dla małych liczb falowych, która jest przestawiona jako odwrotność iloczynu ilorazu indukcji własnej przez przez długość linii przez iloraz pojemności linii przez jej długość: {{CentrujWzór|<MATH>v_f^2={{\omega^2}\over{k^2}}={{{{a^2k^2}\over{LC}}}\over{k^2}}={{a^2}\over{LC}}={{1}\over{{{L}\over{a}}{{C}\over{a}}}}\;</MATH>|4.40}} === Dolnoprzepustowa linia przesyłowa === {{Rysunek|Dolno przepustowa linia cylindryczna.jpeg|wk2|Dolno przepustowa linia cylindryczna}} Z prawa Gaussa dla elektrostatyki, w zależności od ładunku znajdującego się wewnętrznej powierzchni możemy opisać z tego prawa wniosek: {{CentrujWzór|<MATH>-E\epsilon_0 2\pi r a=Q\Rightarrow E=-{{Q}\over{2\pi \epsilon_0r a}}\;</MATH>|4.41}} Wyznaczmy teraz różnicę potencjału między dolną częścią a jej górną częścią kondensatora, którą możemy przestawić według obliczeń: {{CentrujWzór|<MATH>-{{d\varphi}\over{dr}}=-{{Q}\over{2\pi\epsilon_0 r a}}\Rightarrow d\varphi={{Q}\over{2\pi\epsilon_0 r a}}dr\Rightarrow U={{Q}\over{2\pi\epsilon_0a}}\ln{{r+D}\over{r}}\;</MATH>|4.42}} Całkowita pojemność kondensatora {{LinkWzór|4.40}} jest przestawiana z jego definicji jako iloraz ładunku na okładkach kondensatora cylindrycznego przez jego różnicę potencjałów pomiędzy cylindrycznymi okładkami: {{CentrujWzór|<MATH>C={{Q}\over{U}}={{2\pi\epsilon_0 a}\over{\ln{{r+D}\over{r}}}}\;</MATH>|4.43}} Wyznaczmy indukcję magnetyczną pola magnetycznego znajdującego się w kondensatorze pomiędzy jego okładkami: {{CentrujWzór|<MATH>B2\pi r=\mu_0I\Rightarrow B={{\mu_0I}\over{2\pi r}}\;</MATH>|4.44}} Policzmy strumień indukcji pola magnetycznego z jego formalnej definicji, a później indukcję własną: {{CentrujWzór|<MATH>\Phi=\int_r^{r+D} B dr a=a\int_r^{r+D} {{\mu_0I}\over{2\pi r}}dr={{\mu_0aI}\over{2\pi}}\ln{{r+D}\over{r}}\Rightarrow L={{\mu_0a}\over{2\pi}}\ln{{r+D}\over{r}}\;</MATH>|4.45}} Napiszmy teraz iloczyn pojemności elektrycznej kondensatora C i indukcyjności z jej definicji, tzn. {{LinkWzór|4.41}} i {{LinkWzór|4.42}}: {{CentrujWzór|<MATH>LC={{2\pi\epsilon_0 a}\over{\ln{{r+D}\over{r}}}}{{\mu_0a}\over{2\pi}}\ln{{r+D}\over{r}}= \mu_0\epsilon_0 a^2\Rightarrow {{C}\over{a}}{{L}\over{a}}={{1}\over{c^2}}\;</MATH>|4.46}} Jeśli popatrzymy na wzór na kwadrat prędkości fazowej {{LinkWzór|4.40}} i na wzór {{LinkWzór|4.46}} dowiadujemy się, że prędkość fazowa jest równa prędkości światła w dolnoprzepustowej linii przesyłowej. === Linia przesyłowa zrobiona przy pomocy dwóch równoległych pasków przewodzących === {{Rysunek|Linia przesyłowa składająca się z dwóch pasków.jpeg|wk1|Linia przesyłowa zbudowana przy pomocy równoległych pasków przewodzących}} Różnica potencjałów między paskami określamy z jego definicji, a także natężenie pola elektrycznego określamy z prawa Gaussa, piszemy je związkami: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>U=gE_x\;</MATH>|4.47}}|2={{CentrujWzór|<MATH>E_x={{Q}\over{\epsilon_0wa}}\;</MATH>|4.48}}}} Pojemność elektryczna, która jest ilorazem ładunku znajdującego na kondensatorze przez różnicę potencjału znajdującego się na okładkach, wyraża się: {{CentrujWzór|<MATH>C={{Q}\over{U}}={{Q}\over{gE_x}}={{Q}\over{g{{Q}\over{\epsilon_0wa}}}}\Rightarrow{{C}\over{a}}={{w\epsilon_0}\over{g}}\;</MATH>|4.49}} Strumień indukcji pola magnetycznego względem powierzchni bocznej możemy określić jako iloczyn igrekowej współrzędnej indukcji pola magnetycznego przez powierzchnię o wartości ga: {{CentrujWzór|<MATH>\Phi=B_yga\;</MATH>|4.50}} Z prawa Stokesa możemy również powiedzieć, że iloczyn współrzędnej igrekowej pola magnetycznego i długości bocznej kondensatora jest równa iloczynowi przenikalności magnetycznej ośrodka, w którym jest próżnia, przez natężenie prądu elektrycznego płynącego w linii: {{CentrujWzór|<MATH>wB_y=\mu_0I\Rightarrow B_y=\mu_0{{I}\over{w}}\;</MATH>|4.51}} Wzór na indukcję pola magnetycznego a właściwie na jej współrzędną igrekową podstawiamy do {{LinkWzór|4.50}}, wykorzystując definicję indukcyjności własnej, możemy pisać: {{CentrujWzór|<MATH>\Phi= LI=\mu_0{{Iga}\over{w}}\Rightarrow {{L}\over{a}}={{\mu_0g}\over{w}}\;</MATH>|4.52}} Mnożymy wzory {{LinkWzór|4.49}} i {{LinkWzór|4.52}}, w ten sposób otrzymujemy odwrotność na kwadrat prędkości światła w próżni: {{CentrujWzór|<MATH>{{C}\over{a}}{{L}\over{a}}= {{w\epsilon_0}\over{g}}{{\mu_0g}\over{w}}=\mu_0\epsilon_0={{1}\over{c^2}}\;</MATH>|4.53}} Patrząc wzór na kwadrat prędkości fazowej {{LinkWzór|4.40}} i definicję iloczynu ilorazu pojemności linii przesyłowej przez "a" i przez iloraz indukcji pola magnetycznego przez "a". dowiadujemy się, że prędkość fazową linii przesyłowej jest równa prędkości światła w próżni "c". == Zjawisko załamania światła i dyspersja == {{Rysunek|Załamanie promieni świetlnych przechodzącej z ośrodka pierwszego do drugiego.png|wk3|Zjawisko załamania promieni świetlnych}} Z rysunku obok otrzymujemy natychmiast, następujące dwa równania, które wynikają z rysunku obok: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{v_1t}\over{d}}=\sin\theta_1\;</MATH>|4.54}}|2={{CentrujWzór|<MATH>{{v_2t}\over{d}}=\sin\theta_2\;</MATH>|4.55}}}} Dzielimy wzory {{LinkWzór|4.54}} i {{LinkWzór|4.55}} względem siebie, dostajemy: {{CentrujWzór|<MATH>{{v_1}\over{v_2}}={{\sin\theta_1}\over{\sin\theta_2}}\Rightarrow{{c}\over{v_1}}\sin\theta_1={{c}\over{v_2}}\sin\theta\;</MATH>|4.56}} Teraz wykorzystamy definicję współczynnika załamania n=c/v dla rozważanego ośrodka pierwszego i drugiego, to na podstawie tego równość {{LinkWzór|4.56}} przepisujemy jako: {{CentrujWzór|<MATH>n_1\sin\theta_1=n_2\sin\theta_2\;</MATH>|4.57}} === Wyprowadzenie wzoru na współczynnik załamania promieni świetlnych === Względna przenikalność elektryczną możemy przepisać według następującego schematu: {{CentrujWzór|<MATH>\vec{D}=\epsilon_0\vec{E}+\vec{P}\;</MATH>|4.58}} Dalszym krokiem jest wyprowadzenie wzoru na współczynnik przenikalność elektryczną względną, wiedząc że <MATH>_{\vec{P}=\chi\epsilon_0\vec{E}}\;</MATH>, którego przestawienie jest: {{CentrujWzór|<MATH>\epsilon_r\epsilon_0\vec{E}=\epsilon_0\vec{E}+\epsilon_0\chi\vec{E}\Rightarrow\epsilon_r=1+\chi\;</MATH>|4.59}} Na podstawie alternatywnej definicji polaryzacji elektrycznej P=Nqx(t) przenikalność względna elektryczna możemy przepisać do: {{CentrujWzór|<MATH>\epsilon_r=1+{{Nqx(t)}\over{\epsilon_0E(t)}}\;</MATH>|4.60}} Napiszmy teraz równanie ruchu ładunku elektrycznego, który napiszemy za pomocą częstotliwości drgań podstawowych &omega;{{Sub|0}}, współczynnika tłumienia &Gamma;, i przy pomocy natężenia pola elektrycznego zmieniającego się według funkcji kosinus E(t)=E{{Sub|0}}cos&omega;t, wtedy: {{CentrujWzór|<MATH>M\ddot{x}=-M\omega_0^2-M\Gamma\dot{x}+qE(t)\;</MATH>|4.61}} Położenie ciała o masie M możemy zapisać jako rozwiązanie równania {{LinkWzór|4.61}} przy pomocy amplitudy elastycznej A{{Sub|el}} i absorpcyjnej A{{Sub|ab}} według: {{CentrujWzór|<MATH>x(t)=A_{el}\cos\omega t+A_{ab}\cos\omega t\;</MATH>|4.62}} Rozważmy sobie ośrodek przezroczysty, takich jak szkło, woda, są one przezroczyste i nie następuje wtedy absorpcja promieni świetlnych. Dla ośrodków barwnych, nastepuje absorpcja wszystkich częstości oprócz jednej, i interesują nam te częstości, które są daleko od częstości rezonansowych, wtedy amplituda absorpcyjna według {{LinkWzór|3.29|Drgania_wymuszone_układów_harmonicznych}} jest w przybliżeniu równa zero, zatem istnieje tylko amplituda elastyczna, która jest równa dla naszego przypadku według {{LinkWzór|3.30|Drgania_wymuszone_układów_harmonicznych}}: {{CentrujWzór|<MATH>n^2={{c^2}\over{v^2}}= {{c^2}\over{{{c^2}\over{\mu_r\epsilon_r}}}}=\mu_r\epsilon_r\simeq \epsilon_r=1+{{Nqx(t)}\over{\epsilon_0E(t)}}=1+{{Nq^2}\over{\epsilon_0M}}{{1}\over{\omega_0^2-\omega^2}} \;</MATH>|4.63}} Powyżej skorzystano z definicji współczynnika załamania, a także z definicji prędkości światła w ośrodku materialnym, dla którego względna przenikalność magnetyczna jest w przybliżeniu równa jeden. Jeśli powiązać kwadrat współczynnika załamania z liczbą falową, z częstotliwością kołową i z prędkością światła w próżni, to wtedy wzór {{LinkWzór|4.63}} jest w postaci: {{CentrujWzór|<MATH>{{c^2k^2}\over{\omega^2}}=n^2=\epsilon_r=1+{{Nq^2}\over{\epsilon_0M}}{{1}\over{\omega_0^2-\omega^2}}\;</MATH>|4.64}} Związek {{LinkWzór|4.64}} jest związkiem liczby falowej z częstotliwością kołową, który jest związkiem dyspersyjnych dla światła widzialnego. == Strumień energii i impedancja == Prędkość fazową rozchodzenia się fal w strunie obciążonych punktowymi ciężarkami określamy jako pierwiastek z stosunku siły napięcia działająca na strunę T{{Sub|0}} i gęstości liniowej struny &rho;{{Sub|0}}, a impedancję charakterystyczną nazywamy pierwiastek z iloczynu gęstości liniowej struny i siły napięcia, których definicje tychże wielkości określamy poprzez wzory: {{ElastycznyWiersz|1={{CentrujWzór|<math>v_f=\sqrt{{T_0}\over{\rho_0}}\;</MATH>|4.65}}|2={{CentrujWzór|<MATH>Z=\sqrt{\rho_o T_0}\;</MATH>|4.66}}}} Poniżej podamy również wzór na impedancję w tej samej strunie, ale dla drgań poprzecznych. === Fale poprzeczne biegnące w strunie ciągłej === Całkowita siła iksowa działająca na ciągłą strunę wywołująca jego ruch falowy w postaci fal biegnących określamy przez: {{CentrujWzór|<MATH>F_x=T\sin\theta=T\cos\theta{{\sin\theta}\over{\cos\theta}}=T_{0}\operatorname{tg}\theta=T_0{{\partial \psi}\over{\partial z}}\;</MATH>|4.67}} === Wprowadzenie do definicji impedancji charakterystycznej === Każdy element struny ciągłej wykonuje ruch harmoniczny określanych jako funkcja, dla której jest ona wprost proporcjonalna do kosinusa z argument różnicy iloczynu częstotliwości kołowej przez czas i iloczynu liczby falowej przez położenie danego elementu struny, co jego definicja tejże funkcji piszemy przez: {{CentrujWzór|<MATH>\psi(z,t)=A\cos(\omega t-kz)\;</MATH>|4.68}} Pierwsza pochodna wychylenia od stanu równowagi &psi;(z,t) względem położenia z i czasu t struny piszemy przez: {{ElastycznyWiersz|1={{CentrujWzór|<MATH>{{\partial\psi}\over{\partial z}}=kA\sin(\omega t-kz)\;</MATH>|4.69}}|2={{CentrujWzór|<MATH>{{\partial\psi}\over{\partial t}}=-\omega A\sin(\omega t-kz)\;</MATH>|4.70}}}} {{Rysunek|Emisja poprzeczna fali biegnącej.jpeg|wk6|Wytwarzanie fal biegnących. a) równowaga, b)ogólna konfiguracja}} Patrząc na wzory {{LinkWzór|4.69}} i {{LinkWzór|4.70}} możemy napisać wzór łączący pochodną cząstkową wychylenia od stanu równowagi {{LinkWzór|4.42}} względem położenia z i pochodnej cząstkową wychylenia względem czasu w sposób: {{CentrujWzór|<MATH>{{\partial\psi}\over{\partial z}}=-{{1}\over{v_f}}{{\partial\psi}\over{\partial t}}\;</MATH>|4.71}} Całkowita siła działająca na strunę ze strony generatora {{LinkWzór|4.65}} możemy napisać wykorzystując wniosek {{LinkWzór|4.71}}, wtedy: {{CentrujWzór|<MATH>F_x=-{{T_0}\over{v_f}}{{\partial\psi}\over{\partial t}}\;</MATH>|4.72}} Wprowadźmy teraz impedancję, jest ona stosunkiem siły T{{Sub|0}} i prędkości fazowej: {{CentrujWzór|<MATH>Z={{T_0}\over{v_f}}={{T_0}\over{\sqrt{{T_0}\over{\rho_0}}}}=\sqrt{T_0\rho_0}\;</MATH>|4.73}} Przy definicji impedancji {{LinkWzór|4.73}} wzór na siłę iksowa działającą na strunę ciągłą określamy jako iloczyn pochodnej cząstkowej wychylenia od stanu równowagi &psi; względem czasu "t" przez impedancję Z, to razem wszystko wzięte z minusem: {{CentrujWzór|<MATH>F_x=-Z{{\partial\psi}\over{\partial t}}\;</MATH>|4.74}} === Moc wytwarzana przez generator drgań struny === Całkowita wytwarzana moc w czasie "t" jest iloczynem siły F{{Sub|x}} zdefiniowaną w punkcie {{LinkWzór|4.74}} i prędkości wychylenia od stanu równowagi, która jest pochodną cząstkową wychylenia &psi; względem czasu: {{CentrujWzór|<MATH>P(t)=F_x{{\partial\psi}\over{\partial t}}=\left(Z{{\partial\psi}\over{\partial t}}\right){{\partial\psi}\over{\partial t}}=Z\left({{\partial\psi}\over{\partial t}}\right)^2\;</MATH>|4.75}} Innym sposobem wyprowadzenie mocy wytwarzanej przez generator jest opisany przez wzór w zależności od pierwszej pochodnej cząstkowej wychylenia względem położenia: {{CentrujWzór|<MATH>P(t)=F_x{{\partial\psi}\over{\partial t}}=\left[-T_0{{\partial\psi}\over{\partial z}}\right]{{\partial\psi}\over{\partial t}}= \left[-T_0{{\partial\psi}\over{\partial z}}\right]\left[-v_f{{\partial\psi}\over{\partial z}}\right]={{v_f}\over{T_0}}\left[-T_0{{\partial \psi}\over{\partial z}}\right]^2={{1}\over{Z}}\left[-T_0{{\partial\psi}\over{\partial z}}\right]^2\;</MATH>|4.76}} === Promieniowanie wytarzane przez układ sprężynek i mas === {{Rysunek|Emisja promieniowania fal podłużnych przez generator.jpeg|wk7|Emisja promieniowania fal podłużnych przez generator. a)Równowaga. b) układ w ruchu.}} Niech mamy układ sprężynek, które łączą jednakowe masy, wtedy wielkość odpowiadająca wielkości napięcia w strunie T{{Sub|0}} jest wielkość Ka, wtedy impedancję możemy określić jako pierwiastek z wielkości Ka i gęstości masowej liniowej: {{CentrujWzór|<MATH>Z={{Ka}\over{\sqrt{{{Ka}\over{\rho_0}}}}}=\sqrt{Ka\rho_0}\;</MATH>|4.77}} Całkowita moc wytwarzana przez generator podczas wytwarzania fal podłużnych w układzie sprężynek w zależności od czasu "t" lub położenia jest pisana: {{CentrujWzór|<MATH>P(z,t)=Z\left[{{\partial\psi(z,t)}\over{\partial t}}\right]^2={{1}\over{Z}}\left[-Ka{{\partial\psi(z,t)}\over{\partial z}}\right]^2\;</MATH>|4.78}} Całkowita siła działająca na układ mas sprężynek przy założeniu, że w stanie równowagi sprężynki pozostają napięte z siłą F{{Sub|0}}, która nie wpływa na ruch drgający układów kulek, jest określona: {{CentrujWzór|<MATH>F_x=F_0-Ka{{\partial\psi(z,t)}\over{\partial z}}\;</MATH>|4.79}} === Fale głosowe === Prędkość fazowa fal dźwiękowej jest określana przez wzór {{LinkWzór|4.38}}, porównując ten wzór z {{LinkWzór|4.26}} (w tym drugim mamy gęstość liniową, a w tym pierwszym gęstość objętościową), dochodzimy do wniosku, że rolę napięcia sprężyny spełnia &kappa;p{{Sub|0}}, wtedy impedancję piszemy: {{CentrujWzór|<MATH>Z=\sqrt{\kappa p_0\rho_0}\;</MATH>|4.80}} Natężenia fali dźwiękowej można napisać na podstawie tożsamości {{LinkWzór|4.76}} określoną względem pochodnej wychylenia podłużnego &psi;(z,t) względem czasu "t" lub położenia "z": {{CentrujWzór|<MATH>I(z,t)=Z\left[{{\partial\psi(z,t)}\over{\partial t}}\right]^2={{1}\over{Z}}\left[-\kappa p_0{{\partial \psi(z,t)}\over{\partial z}}\right]^2\;</MATH>|4.81}} Siłą działająca na jednostkę powierzchni określamy względem stałego ciśnienia panującego w ośrodku p{{Sub|0}}, która to fala dźwiękowa zaburza stałe nasze ciśnienie atmosferyczne przy pomocy członu harmonicznego, który powoduje, że mamy raz ciśnienie wyższe, a za drugim niższe od naszego rozważanego ciśnienia p{{Sub|0}}. {{CentrujWzór|<math>{{F_x}\over{A}}=p_0-\kappa p_0{{\partial\psi(z,t)}\over{\partial z}}\;</MATH>|4.82}} <noinclude>{{SkomplikowanaStronaKoniec}}</noinclude> m0arm3klkcdduwyqqqjtm99hs6wqdk6 Moduł:StronicowyParser 828 34347 555456 555431 2026-09-10T13:22:39Z Persino 2851 555456 Scribunto text/plain local p = {} function p.SpreparowanyWikikodStrony(nazwa_modulu,dokumentacja,inkludowana) local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); return stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,nazwa_modulu,dokumentacja,inkludowana); end; function p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu_aktualna_czy_biezaca,inkludowana) local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); local tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nil,nazwa_modulu_aktualna_czy_biezaca,inkludowana,nil); return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony; end; p["DaneUkładuAutonawigacji"]=function(frame,tabela_listy_danych_analizy_ksiazki) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki); local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki); if(not spis)then return nil;end; return tab_lista_artykulow_w_ksiazce.nazwa_bazowego_spisu,tab_lista_artykulow_w_ksiazce.tab_inne_spisy,tab_lista_artykulow_w_ksiazce.dodatkowe_strony_woluminu; end; p["SpisyTreści"]=function(frame,tabela_listy_danych_analizy_ksiazki,bez_json) local nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly=p["DaneUkładuAutonawigacji"](frame,tabela_listy_danych_analizy_ksiazki); local tabela={}; tabela.spis_tresci=nazwa_glownego_spisu; tabela.inne_spisy=tab_inne_spisy; tabela.dodatkowe_strony_woluminu=dodatkowe_artykuly; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local czy_json=((not bez_json)and(parametry_modul.CzyTak(PobierzParametr("json")))) and true or false; return czy_json and mw.text.jsonEncode(tabela,mw.text.JSON_PRESERVE_KEYS) or tabela; end; p["CzySpisTreści"]=function(frame,tabela_listy_danych_analizy_ksiazki) local spisy=p["SpisyTreści"](frame,tabela_listy_danych_analizy_ksiazki,true); local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local artykul=PobierzParametr("artykuł"); ---- if(artykul)then artykul=parametry_modul["Odstępy"]{[1]=artykul,[2]="tak",}; if((spisy.spis_tresci)and((parametry_modul.TypeTable(spisy.spis_tresci))and((spisy.spis_tresci[1]==artykul)or(spisy.spis_tresci[2]==artykul))or(spisy.spis_tresci==artykul)))then return "tak"; else if((spisy.inne_spisy)and(parametry_modul.TypeTable(spisy.inne_spisy)))then for _,spis_tresci in ipairs(spisy.inne_spisy)do if((parametry_modul.TypeTable(spis_tresci))and((spis_tresci[1]==artykul)or(spis_tresci[2]==artykul))or(spis_tresci==artykul))then return "tak"; end; end; end; end; end; end; p["TekstRozdziałuStrony"]=function(frame) local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały"); return stronicowyparser_rozdzialy.TekstPoNapisieWprowadzeniaTekstuStrony(frame); end; p["KtóraSekcjaStrony"]=function(frame) local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały"); return stronicowyparser_rozdzialy.NumerSekcjiStrony(frame); end; p["ZwróćSekcjęNagłówkaStrony"]=function(frame) local stronicowyparser_rozdzialy=require("Module:StronicowyParser/Rozdziały"); return stronicowyparser_rozdzialy.ZwracanieSekcjiNapisuWprowadzeniaTekstuStrony(frame); end; p["NastępnyArtykuł"]=function(frame,tabela_listy_danych_analizy_ksiazki) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki); if (not iterator)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(); --- local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local ksiazka=parametry_modul.CzyTak(args["książka"]); local analizowana=parametry_modul.CzyTak(args["analizowana"]); local numer=tonumber(args[1]) or 0; local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame); local html_modul=require("Module:Html"); local nazwa_artykulu_bez_naglowka=html_modul["NazwaStronyAdresu"](nazwa_artykulu,true); local nazwa_artykulu=(not naglowek) and nazwa_artykulu_bez_naglowka or nazwa_artykulu; ---- local juz_tak=false; local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka,numer) or nil; ---- for nazwa_artykulu_w_bazie,nazwa_linku_artykulu_w_bazie,przekierowanie_artykulu_w_bazie,pelna_nazwa_ksiazki_w_bazie in iterator do local nazwa_artykulu_w_bazie2=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,naglowek); local function Nastepny() if(not nazwa)then return stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana); end; return nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana); end; if(juz_tak)then if(numer>0)then local nazwa_artykulu_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu_w_bazie,false); local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu_bez_naglowka_w_bazie); local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka_w_bazie,numer); if((numer==numer_artykulu_w_bazie)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then return Nastepny(); end; else return Nastepny(); end; else if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then juz_tak=true; end; end; end; if(juz_tak)then return ""; else return "(błąd)"; end; end; p["PoprzedniArtykuł"]=function(frame,tabela_listy_danych_analizy_ksiazki) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki); if (not iterator)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(); --- local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local ksiazka=parametry_modul.CzyTak(args["książka"]); local analizowana=parametry_modul.CzyTak(args["analizowana"]); local numer=tonumber(args[1]) or 0; local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame); local html_modul=require("Module:Html"); local nazwa_artykulu_bez_naglowka=html_modul["NazwaStronyAdresu"](nazwa_artykulu,true); local nazwa_artykulu=(not naglowek) and nazwa_artykulu_bez_naglowka or nazwa_artykulu; ---- local juz_tak=false; local nadstrona_artykulu=(numer>0) and stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka,numer) or nil; ---- local artykul=""; ---- for nazwa_artykulu_w_bazie,nazwa_linku_artykulu_w_bazie,przekierowanie_artykulu_w_bazie,pelna_nazwa_ksiazki_w_bazie in iterator do local nazwa_artykulu_w_bazie2=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,naglowek); if(numer>0)then local nazwa_artykulu_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu_w_bazie,false); local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu_bez_naglowka_w_bazie); local nadstrona_artykulu_w_bazie=stronicowyparser_potrzebne_modul.NazwaNadStrony(nazwa_artykulu_bez_naglowka_w_bazie,numer); if((numer==numer_artykulu_w_bazie)and(nadstrona_artykulu==nadstrona_artykulu_w_bazie))then if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then return artykul; else artykul=(not nazwa) and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana) or (nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana)); end; else if(artykul~="")then return artykul; else artykul=""; end; end; else if(nazwa_artykulu_w_bazie2==nazwa_artykulu)then return artykul; else artykul=(not nazwa) and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana) or (nazwa_linku_artykulu_w_bazie or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(nazwa_artykulu_w_bazie2,pelna_nazwa_ksiazki_w_bazie,przekierowanie_artykulu_w_bazie,naglowek,ksiazka,analizowana)); end; end; end; return "(błąd)"; end; p["PoziomNazwyArtykułu"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame); return stronicowyparser_potrzebne_modul.PoziomAdresu(nazwa_artykulu); end; p["PierwszyArtykuł"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki); if (not iterator)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]); local ksiazka=parametry_modul.CzyTak(args["książka"]); local analizowana=parametry_modul.CzyTak(args["analizowana"]); local numer=tonumber(args[1]) or 0; local args=stronicowyparser_potrzebne_modul:Args(); for tab_artykul,nazwa_linku,przekierowanie,pelna_nazwa_ksiazki in iterator do local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab_artykul,czy_naglowek); local function PierwszyArtykul() if(not nazwa)then return stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana); else return nazwa_linku or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana); end; end; if(numer==0)then return PierwszyArtykul(); else local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul); if(numer==numer_artykulu_w_bazie)then return PierwszyArtykul(); end; end; end; return "(błąd)"; end; p["OstatniArtykuł"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local iterator=stronicowyparser_potrzebne_modul.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki); if (not iterator)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local parametry_modul=require("Module:Parametry"); local nazwa=parametry_modul.CzyTak(args["nazwa"]); local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]); local ksiazka=parametry_modul.CzyTak(args["książka"]); local analizowana=parametry_modul.CzyTak(args["analizowana"]); local numer=tonumber(args[1]) or 0; local ostatni_artykul=nil; for tab_artykul,nazwa_linku,przekierowanie,pelna_nazwa_ksiazki in iterator do local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab_artykul,czy_naglowek); local function OstatniArtykul() if(not nazwa)then ostatni_artykul=stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana); else ostatni_artykul=nazwa_linku or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki,przekierowanie,czy_naglowek,ksiazka,analizowana); end; end; if(numer==0)then OstatniArtykul(); else local numer_artykulu_w_bazie=stronicowyparser_potrzebne_modul.PoziomAdresu(artykul); if(numer==numer_artykulu_w_bazie)then OstatniArtykul(); end; end; end; if(ostatni_artykul)then return ostatni_artykul;end; return "(błąd)"; end; p["PomiędzyNagłówek"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); return stronicowyparser_potrzebne_modul:LosowyNapisProwadzeniaTekstuBezPierwszegoOrazOstatniegoNapisuSpisuRzeczy(frame); end; p["LosowyNagłówek"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); return stronicowyparser_potrzebne_modul:LosowyNapisProwadzeniaTekstuWoluminu(frame); end; p["PierwszyNagłówek"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); return stronicowyparser_potrzebne_modul:PierwszyNapisWprowadzeniaTekstu(frame); end; p["OstatniNagłówek"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); return stronicowyparser_potrzebne_modul:OstatniNapisWprowadzeniaTekstu(frame); end; p["LiczbaNagłówkówSpisu"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); return stronicowyparser_potrzebne_modul:LiczbaNapisowaWprowadzeniaTekstu(frame); end; p["PomiędzyArtykuł"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local val=stronicowyparser_potrzebne_modul:ObliczeniaInformacje(frame); if(not val)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local numer=tonumber(args[1]) or 0; local parametry_modul=require("Module:Parametry"); local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local ksiazka=parametry_modul.CzyTak(args["książka"]); local analizowana=parametry_modul.CzyTak(args["analizowana"]); local element=stronicowyparser_potrzebne_modul:LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(frame,numer) or nil; if(not element)then return "(błąd)";end; local nazwa=parametry_modul.CzyTak(args["nazwa"]); local czy_table=parametry_modul.TypeTable(element); if(not nazwa)then return czy_table and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana) or ((not czy_table) and element or "(błąd)");end; return czy_table and (element[2] or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana)) or ((not czy_table) and element or "(błąd)"); end; p["LosowyArtykuł"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local val=stronicowyparser_potrzebne_modul:ObliczeniaInformacje(frame); if(not val)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local numer=tonumber(args[1]) or 0; local parametry_modul=require("Module:Parametry"); local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local ksiazka=parametry_modul.CzyTak(args["książka"]); local analizowana=parametry_modul.CzyTak(args["analizowana"]); local element=stronicowyparser_potrzebne_modul:LosowaStronaWoluminu(frame,numer); if(not element)then return "(błąd)";end; local nazwa=parametry_modul.CzyTak(args["nazwa"]); local czy_table=parametry_modul.TypeTable(element); if(not nazwa)then return czy_table and stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana) or ((not czy_table) and element or "(błąd)");end; return czy_table and (element[2] or stronicowyparser_potrzebne_modul.StronaArtykularnaKompletna(element[1],element[4],element[3],naglowek,ksiazka,analizowana)) or ((not czy_table) and element or "(błąd)"); end; p["SubNazwaNadArtykułu"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local numer=tonumber(args[1]) or 0; local krok=tonumber(args[2])or 1; local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame); return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,numer,krok); end; p["NazwaNadArtykułu"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(frame); local numer=tonumber(args[1]) or 1; local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame); return stronicowyparser_potrzebne_modul.SubNazwaNadStrony(nazwa_artykulu,1,numer); end; p["NazwaLinkuArtykułu"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); local args=stronicowyparser_potrzebne_modul:Args(); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local parametry_modul=require("Module:Parametry"); local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]); local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame); for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]); if(not czy_tabela_artykulu)then local nazwa_artykulu_z_parametrami_i_naglowkiem=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_w_bazie[1],czy_naglowek); if(nazwa_artykulu_z_parametrami_i_naglowkiem==nazwa_artykulu)then return artykul_w_bazie[1]; end; else local nazwa_artykulu_z_parametrami_i_naglowkiem=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_w_bazie[1][1],czy_naglowek); if(nazwa_artykulu_z_parametrami_i_naglowkiem==nazwa_artykulu)then return artykul_w_bazie[1][2]; end; end; end; end; end; return "(błąd)"; end; p["LiczbaArtykułówKsiążki"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local parametry_modul=require("Module:Parametry"); local args=stronicowyparser_potrzebne_modul:Args(); local naglowek=parametry_modul.CzyTak(args["nagłówek"]); local tab_artykul=(not naglowek) and {} or nil; local i=0; for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]); local nazwa_artykulu=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1]; local artykul=(not naglowek) and stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(nazwa_artykulu,false) or nil; if(naglowek or not tab_artykul[artykul])then if(not naglowek)then tab_artykul[artykul]=true; end; i=i+1; end; end; end; end; return i; end; p["LiniaArtykułuKsiążki"]=function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(); local parametry_modul=require("Module:Parametry"); local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]); local nazwa_artykulu=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame); local parametry_modul=require("Module:Parametry"); local args=stronicowyparser_potrzebne_modul:Args(); local czy_analiza=parametry_modul.CzyTak(args["analiza"]); local uzupelniaj_sekcje_artykulow=parametry_modul.CzyTak(args["uzupełniaj sekcje artykułów"]); if(not uzupelniaj_sekcje_artykulow)then for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]); local artykul_ksiazki=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1]; artykul_ksiazki=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul_ksiazki,czy_naglowek); if(artykul_ksiazki==nazwa_artykulu)then if(not czy_analiza)then return artykul_w_bazie[3]; else local function AnalizaLiniiArtykolow() local czy_spis_tresci=mw.ustring.match(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})"); if(czy_spis_tresci)then local szablonowe_modul=require("Module:Szablonowe"); local parametry_szablony,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](czy_spis_tresci); local nazwa_artykulu=parametry_szablony[1]; ------ local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame); local pelna_nazwa_strony=(nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu; local link= "[["..pelna_nazwa_strony.."|"..nazwa_artykulu.."]]"; local linia2,_=mw.ustring.gsub(artykul_w_bazie[3],"({{%s*[Ss]pisTreści%s*|[^{}]*}})",link); return linia2; else local linia2=artykul_w_bazie[3]; local czy_spis_tresci=mw.ustring.match(linia2,"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|[^{}]*}})") or mw.ustring.match(linia2,"({{%s*[Ss]r%s*|[^{}]*}})"); if(czy_spis_tresci)then local linia2,_=mw.ustring.gsub(linia2,"({{%s*[Ss]ekcja[%s_]+referencyjna%s*|)","%1astandardowo=tak|"); local linia2,_=mw.ustring.gsub(linia2,"({{%s*[Ss]r%s*|)","%1astandardowo=tak|"); return linia2; else local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame); local function adresuj_linki(a,b) return "[["..nazwa_ksiazki.."/"..a..(b or ("|"..a)).."]]"; end; local artykul=mw.ustring.gsub(artykul_w_bazie[3],"%[%[%s*/([^%[%]|]-)/*%s*(|.*)%]%]",adresuj_linki); artykul=mw.ustring.gsub(artykul,"%[%[%s*/([^%[%]|]-)/*%s*%]%]",adresuj_linki); return artykul; end; end; end; return AnalizaLiniiArtykolow(); end end; end; end; end; else if(mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"))then local naglowek=mw.ustring.match(nazwa_artykulu,"^[^#]*#(.+)$"); if(parametry_modul["CzyTakCiąg"](naglowek))then local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame) return "[["..pelna_nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "").."|"..naglowek.."]]"; end; end; end; end; p["AktualnaKsiążka"]=function(frame,__error) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); return stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame) or ((not __error)and "(błąd)" or nil); end; p["AktualnaKsiążkaArtykułu"]=function(frame,__error) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local args=stronicowyparser_potrzebne_modul:Args(); ---- local parametry_modul=require("Module:Parametry"); local ksiazka=parametry_modul.CzyTak(args["książka"]); local nazwy_modul=require("Module:Nazwy"); ---- local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]); local nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame); local nazwa_artykulu_ksiazki=stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame); ---- for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do if(tab_lista[2])then for _,artykul_w_bazie in ipairs(tab_lista[2])do local czy_tabela_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]); local nazwa_artykulu_dana=czy_tabela_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1]; nazwa_artykulu_dana=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_dana,czy_naglowek); if(nazwa_artykulu_ksiazki==nazwa_artykulu_dana)then if(not czy_tabela_artykulu)then return nazwa_ksiazki; else local pelna_nazwa_ksiazki=artykul_w_bazie[1][4]; if((pelna_nazwa_ksiazki)and(pelna_nazwa_ksiazki[4]))then return nazwy_modul["NazwaModułu"](pelna_nazwa_ksiazki[1],pelna_nazwa_ksiazki[2],pelna_nazwa_ksiazki[3],"") else return nazwa_ksiazki; end; end; end; end; end; end; return ((not __error)and "(błąd)" or nil) end; p["NazwaAktualnyArtykuł"]=function(frame,__error) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); return stronicowyparser_potrzebne_modul:NazwaPodStronyWoluminu(frame) or ((not __error)and "(błąd)" or nil); end; p["PobierzNumerNagłówka"]=function(frame) local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaNagłówkówKsiążek"); return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNumerNagłówka"](frame); end; p["PobierzNazwęNagłówka"]=function(frame) local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaNagłówkówKsiążek"); return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNazwęNagłówka"](frame); end; p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki) local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek"); local wartosc,_=stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNumerArtykułu"](frame,tabela_listy_danych_analizy_ksiazki); return wartosc; end; p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki) local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek"); local wartosc,_=stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzNazwęArtykułu"](frame,tabela_listy_danych_analizy_ksiazki); return wartosc; end; p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json) local stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek"); return stronicowyparser_numer_lub_nazwa_artykulow_ksiazek_modul["PobierzDaneKsiążki"](frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json); end; p["ListaNagłówkówKsiążki"] = function(frame) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame); if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end; local stronicowyparser_obiekty=mw.loadData("Module:StronicowyParser/obiekty"); local parametry_modul=require("Module:Parametry"); local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu); setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); local czy_sa_rozdzialy=nil; local pelna_nazwa_ksiazki=stronicowyparser_potrzebne_modul:KompletnaNazwaWoluminu(frame); local args=stronicowyparser_potrzebne_modul:Args(); local wikikod=""; local linki_modul=require("Module:Linki"); for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; local numer_rozdzialu=tab_lista[1][2][1]; local czy_centrowany=tab_lista[1][2][4]; if((numer_rozdzialu)and(numer_rozdzialu>0)and(not czy_centrowany))then if(not tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial])then wikikod=((wikikod~="")and (wikikod.." &nbsp;—&nbsp; ") or "")..linki_modul["Link wewnętrzny"]{["strona"]=pelna_nazwa_ksiazki,["nagłówek"]=rozdzial,["nazwa"]=rozdzial,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],}; end; czy_sa_rozdzialy=true; end; end; if(not czy_sa_rozdzialy)then return "(błąd: brak rozdziałów)";end; return wikikod; end; p["ArtykułSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame,true); local pobierz_nazwa_artykulu=PobierzParametr("pobierz pełną nazwę artykułu"); local pobierz_adres_ksiazki=PobierzParametr("pobierz pełną nazwę książki"); local czy_pobierz_pelna_nazwa_artykulu=parametry_modul.CzyTak(pobierz_nazwa_artykulu); local czy_pobierz_pelna_nazwa_ksiazki=parametry_modul.CzyTak(pobierz_adres_ksiazki); if(czy_pobierz_pelna_nazwa_artykulu and not czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; elseif(not czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return ((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki; elseif(czy_pobierz_pelna_nazwa_artykulu and czy_pobierz_pelna_nazwa_ksiazki)then return "(błąd)"; end; local nazwa_strony=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and "/" or "")..nazwa_artykulu; local nazwy_modul=require("Module:Nazwy"); if(nazwa_strony==nazwy_modul["PEŁNANAZWASTRONY"]())then local blad_modul=require("Module:Błąd"); return blad_modul.error{args={[1]="Próbowano załadować bieżącą stronę.",},}; end; local szablonowe_modul=require("Module:Szablonowe"); local szablon=szablonowe_modul.NazwaSzablonu(nazwa_strony); local zawartosc=frame:expandTemplate{title=szablon,args={},}; --Tworzenie ramek div-- local divramka=mw.html.create('div'); divramka:addClass('artykułsubst'); local poddivramka=mw.html.create('div'); poddivramka:wikitext(nazwa_strony); poddivramka:addClass("adres"); poddivramka:css("display","none"); divramka:node(poddivramka); local divzawartosc=mw.html.create('div'); divzawartosc:addClass("zawartość"); divzawartosc:css("display","block"); divzawartosc:wikitext(zawartosc); divramka:node(divzawartosc) --Zwracanie ramki div-- return tostring(divramka:allDone()); end; p["KsiążkaSubst"] = function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_przestrzeni_nazw=PobierzParametr("nazwa przestrzeni nazw"); local nazwa_jednostki=PobierzParametr("nazwa jednostki"); if((not nazwa_przestrzeni_nazw)and(not nazwa_jednostki))then local str=tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]; if(str)then str=frame:preprocess(str); return str; end; return nil; end; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local pelnanazwastrony=(nazwa_przestrzeni_nazw or nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazwy))..":"..(nazwa_jednostki or nazwy_modul["NAZWASTRONY"](nil,tabela_nazwy)); local ksiazkowe_modul=require("Module:Książkowe"); local tabela_nazw={}; local nazwa_przestrzeni=ksiazkowe_modul["NazwaPrzestrzeni"](pelnanazwastrony,tabela_nazw); local nazwa_przestrzeni_ksiazki=ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](pelnanazwastrony,tabela_nazw); local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and ksiazkowe_modul["NazwaTytułuKsiążki"](pelnanazwastrony,tabela_nazw) or ksiazkowe_modul["NazwaKsiążki"](pelnanazwastrony,tabela_nazw); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelnanazwastrony,tabela_nazw); local str=((((tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"]or{})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki]or{})[nazwa_artykulu]; if(str)then str=frame:preprocess(str); return str; end; local str=(((tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"]or{})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki]; if(str)then str=frame:preprocess(str); return str; end; return nil; end; p["StronaSubst"] = function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_przestrzeni_nazw=PobierzParametr("nazwa przestrzeni nazw"); local nazwa_jednostki=PobierzParametr("nazwa jednostki"); local tab_stronasubst; if((not nazwa_przestrzeni_nazw)and(not nazwa_jednostki))then tab_stronasubst=tabela_listy_danych_analizy_ksiazki["StronaSubst"]; if(not tab_stronasubst)then return;end; else local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local pelnanazwastrony=(nazwa_przestrzeni_nazw or nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazwy))..":"..(nazwa_jednostki or nazwy_modul["NAZWASTRONY"](nil,tabela_nazwy)); local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=ksiazkowe_modul["NazwaPrzestrzeni"](pelnanazwastrony,tabela_nazw); local nazwa_przestrzeni_ksiazki=ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](pelnanazwastrony,tabela_nazw); local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and ksiazkowe_modul["NazwaTytułuKsiążki"](pelnanazwastrony,tabela_nazw) or ksiazkowe_modul["NazwaKsiążki"](pelnanazwastrony,tabela_nazw); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelnanazwastrony,tabela_nazw); tab_stronasubst=(((tabela_listy_danych_analizy_ksiazki["StronaSubstInne"] or {})[nazwa_przestrzeni]or{})[nazwa_przestrzeni_ksiazki]or{})[nazwa_ksiazki]; if(not tab_stronasubst)then return;end; end; local pierwszy=parametry_modul["Odstępy"]{nazwa=args[1],["wewnątrz"]="tak",}; local tab_strona=tab_stronasubst[pierwszy]; if(not tab_strona)then return;end; local link=args["link"]; local czy_link=parametry_modul.CzyTak(link); local stronasubst=tab_strona[(czy_link and "tak" or "")]; stronasubst=frame:preprocess(stronasubst); return stronasubst; end; p["CzyStronęNumerować"] = function(frame) local strona=frame.args[1]; local nazwy_modul=require("Module:Nazwy"); strona=nazwy_modul["PEŁNANAZWASTRONY"](strona); local pudelko_modul=require("Module:Pudełko"); if(strona==pudelko_modul["Strona główna tego projektu"](frame))then return; end; if(strona==pudelko_modul["Strona główna dla dzieci tego projektu"](frame))then return; end; if(mw.ustring.match(strona,"^Szablon:Strona główna/"))then return; end; local zbiory={ ["Szablon:Nowe podręczniki miesiąca/Zwycięzca"]=true, ["Wikibooks:Polecane książki"]=true, ["Szablon:Wyróżnienia książek miesiąca/Wyróżniony"]=true, } if(zbiory[strona])then return; end; if(mw.ustring.match(strona,"^Szablon:Polecane książki/") or(mw.ustring.match(strona,"^Szablon:Nowe podręczniki miesiąca/")) or(mw.ustring.match(strona,"^Szablon:Wyróżnienia książek miesiąca/")) )then return; end; return "tak"; end; function p.HNumer(frame) local parametry_modul=require("Module:Parametry"); local p=parametry_modul.PobierzFrameEwentualnieParent(frame); if((not p) or (not p.args[1]))then local blad_module=require("Module:Błąd"); local frame2=p:newChild{args={[1]="Podano złe parametry w szablonie: [[Szablon:HLiczba]].",["tag"]="span",},} blad_module.error(frame2); return; end; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek,licznik=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(p.args[1]); if(licznik>6)then local id=p.args["id"]; local styl=p.args["styl"]; local klasa=p.args["klasa"]; local atrybuty=p.args["atrybuty"]; local parametry_modul=require("Module:Parametry"); return "<h6"..(parametry_modul.CzyTak(id)and " id=\""..id.."\"" or "") ..(parametry_modul.CzyTak(styl)and " style=\""..styl.."\"" or "") .." class=\"mw-hnumber mw-hnumber-"..licznik..((parametry_modul.CzyTak(klasa)) and (" "..klasa) or "").."\"" ..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "") ..">"..naglowek.."</h6>"; elseif(licznik<1)then local blad_module=require("Module:Błąd"); return blad_module.error{args={[1]="Nie podano nagłówka w szablonie: [[Szablon:HLiczba]].",["tag"]="strong",},}; else local id=p.args["id"]; local styl=p.args["styl"]; local klasa=p.args["klasa"]; local atrybuty=p.args["atrybuty"]; local parametry_modul=require("Module:Parametry"); return "<h"..licznik..(parametry_modul.CzyTak(id)and " id=\""..id.."\"" or "") ..(parametry_modul.CzyTak(styl)and " style=\""..styl.."\"" or "") ..((parametry_modul.CzyTak(klasa)) and " class=\""..klasa.."\"" or "") ..(parametry_modul.CzyTak(atrybuty)and " "..atrybuty or "")..">"..naglowek.."</h"..licznik..">"; end; end; function p.TOC(frame,czy_rozciagnij,gdy_pusty_spis_tresci) local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; local uzyskana_nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local uzyskana_nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local uzyskana_nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local uzyskana_nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local pelna_nazwa_strony=((uzyskana_nazwa_przestrzeni~="") and (uzyskana_nazwa_przestrzeni..":") or "")..((uzyskana_nazwa_przestrzeni_ksiazki~="") and (uzyskana_nazwa_przestrzeni_ksiazki.."/") or "")..uzyskana_nazwa_ksiazki..((uzyskana_nazwa_artykulu~="")and ("/"..uzyskana_nazwa_artykulu) or ""); local args=parametry_modul.PobierzArgsParametry(frame,true); local nazwa_ksiazki;local nazwa_artykulu; if(args[1])then nazwa_artykulu=args[1]; nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; end; if(args[2])then nazwa_ksiazki=args[2]; nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true); local techniczne_modul=require("Module:Techniczne"); nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=pelna_nazwa_strony,}; end; local nazwa_artykulu=parametry_modul.CzyTak(nazwa_artykulu) and nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_strony); local czy_nazwa_ksiazki=parametry_modul.CzyTak(nazwa_ksiazki); local podana_nazwa_przestrzeni_nazw=czy_nazwa_ksiazki and (nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki)) or ksiazkowe_modul["NazwaPrzestrzeni"](pelna_nazwa_strony); local podana_nazwa_jednostki=czy_nazwa_ksiazki and (nazwy_modul["NAZWAKSIĄŻKI"](nazwa_ksiazki)..((nazwa_artykulu~="")and ("/"..nazwa_artykulu) or "")) or ksiazkowe_modul["NazwaArtykułu"](pelna_nazwa_strony); local args_nowe={ ["nazwa przestrzeni nazw"] = podana_nazwa_przestrzeni_nazw, ["nazwa jednostki"] = podana_nazwa_jednostki, }; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu{args=args_nowe}; stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu{args=args_nowe}; local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,lista_artykulow_w_ksiazkach_w_danej_przestrzeni_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu{args=args_nowe}; local self_zmienna,tabela_listy_danych_analizy_ksiazki=stronicowyparser_potrzebne_modul:Self(); if((not tab_lista_zmiennych_w_artykule)and(not tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza))then local blad_modul=require("Module:Błąd"); return blad_modul.error{tab="span",tekst="Nie znalazłem takiej książki."}; end; local czy_nie_aktualny=( (self_zmienna.nazwa_przestrzeni_podana~=self_zmienna.nazwa_przestrzeni) or(self_zmienna.nazwa_przestrzeni_woluminu_podana~=self_zmienna.nazwa_przestrzeni_woluminu) or(self_zmienna.nazwa_woluminu_podana~=self_zmienna.nazwa_woluminu) or (self_zmienna.nazwa_podstrony_woluminu_podana~=self_zmienna.nazwa_podstrony_woluminu) ); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); if ((tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza)or(tab_lista_zmiennych_w_artykule and tab_lista_zmiennych_w_artykule.TOC or nil)) then local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza or tab_lista_zmiennych_w_artykule.TOC, czy_nie_aktualny,czy_rozciagnij); return spis_tresci_artykulu; elseif(not gdy_pusty_spis_tresci)then local spis_tresci_artykulu=stronicowyparser_potrzebne_modul.TOC(frame,nil,czy_nie_aktualny,czy_rozciagnij); return spis_tresci_artykulu; end; end; p["WykazModułówKsiążki"]=function(frame,czy_rozciagnij) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame); if(not tab_lista_artykulow_w_ksiazce)then return nil;end; local self_zmienna=stronicowyparser_potrzebne_modul:Self(); local nazwa_ksiazki=self_zmienna.nazwa_woluminu; local nazwa_przestrzeni_ksiazki=self_zmienna.nazwa_przestrzeni_woluminu; local nazwa_przestrzeni=self_zmienna.nazwa_przestrzeni; local parametry_modul=require("Module:Parametry"); local spis_ksiazkowy=parametry_modul.CzyTak(frame.args["spis książkowy"]); local spis_rzeczy=parametry_modul.CzyTak(frame.args["spis rzeczy"]); local tylko_naglowki=parametry_modul.CzyTak(frame.args["nagłówki"]); local artykul=frame.args["artykuł"]; local wysokosc=frame.args["wysokość"]; local szerokosc=frame.args["szerokość"]; local wykaz_modulow_w_liscie=""; local czy_spis_tresci=nil; local i=1; local czy_spisy=nil; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local czy_nienilowy_rozdzial=tab_lista[1][2][1]; local poziom_rozdzialu=czy_nienilowy_rozdzial or 0; if((artykul)and(poziom_rozdzialu==1))then if(((m==1)and(not czy_spisy))or((m>1)and(czy_spisy)))then local spis=tab_lista[1]["spis"]; if(spis)then if(not czy_spis_tresci)then local spis_tresci_dany=spis[1]; czy_spis_tresci=(artykul==spis_tresci_dany); czy_spisy=true; else break; end; else local dodatkowe=tab_lista[1]["dodatkowe"]; if(dodatkowe)then break; end; end; end; end; if((not artykul)or((artykul)and((not czy_spisy)or((czy_spisy)and(czy_spis_tresci)))))then if(tab_lista[2])then for _,tab_pozycja in ipairs(tab_lista[2])do local sformatowana_nazwa_artykulu; if(type(tab_pozycja[1])~="table")then sformatowana_nazwa_artykulu=mw.ustring.gsub(tab_pozycja[1],"_"," "); else sformatowana_nazwa_artykulu=mw.ustring.gsub(tab_pozycja[1][1],"_"," "); end; local id=tab_pozycja[4] if(not tylko_naglowki or id)then if(not spis_ksiazkowy)then wykaz_modulow_w_liscie=((wykaz_modulow_w_liscie~="") and (wykaz_modulow_w_liscie.."\n") or "")..'<li>[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki.."/") or "#")..sformatowana_nazwa_artykulu.."|<span class=\"tocnumber\">"..i.."</span><span class=\"toctext\">"..sformatowana_nazwa_artykulu..'</span>]]</li>'; else wykaz_modulow_w_liscie=((wykaz_modulow_w_liscie~="") and (wykaz_modulow_w_liscie.."\n") or "")..'{{SpisZw||[['..((not spis_rzeczy or not id)and (((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki.."/") or "#")..sformatowana_nazwa_artykulu.."|"..sformatowana_nazwa_artykulu.."]]|"..i.."|100%}}"; end; i=i+1; end; end; end; end; end; if(wykaz_modulow_w_liscie=="")then return nil;end; if(not spis_ksiazkowy)then wykaz_modulow_w_liscie="<ul>"..wykaz_modulow_w_liscie.."</ul>"; wykaz_modulow_w_liscie='<div class="toc_ogólnie_spis toc_wykaz" style="width:100%;max-height:25rem;overflow:auto;">'..wykaz_modulow_w_liscie.."</div>"; wykaz_modulow_w_liscie='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or (szerokosc or "auto"))..';max-width:100%;font-size:0.875rem;line-height:1.2;background-color:white;|tytuł=<div style="font-size:0.875rem;line-height:1.2;background-color:white;text-align:left;white-space:nowrap;">Wykaz modułów w książce</div>|spis='..wykaz_modulow_w_liscie..'|funkcja=UkrytaWikitabelowaListaMenu}}'; else wykaz_modulow_w_liscie="<div class=\"toc_wykaz mw-overflow-y\" style=\""..(wysokosc and ("max-height:"..wysokosc..";overflow:auto;") or "").."border:solid #aaa 1px;padding:0.625rem;width:"..(czy_rozciagnij and "100%" or (szerokosc or "auto"))..";max-width:100%;box-sizing:border-box;background-color:white;\">"..wykaz_modulow_w_liscie.."</div>"; end; local rozwiniety_wikikod=frame:preprocess(wykaz_modulow_w_liscie); return rozwiniety_wikikod; end; p["NazwaAktualnyModuł"]=function() local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; local nazwy_np_modul=mw.loadData('Moduł:Nazwy/Np'); local nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; if(nazwa_artykulu==nil)then return "[["..nazwy_np_modul.Category..": Nie można wygenerować nazwy strony]]"; else return nazwa_artykulu; end; end; p["WstępDoLicencji"]=function(frame) local element_licencji_1='<strong>Autor:</strong> '..frame.args[1]..'<BR>'; local element_licencji_2; if((frame.args[2]~='')and(frame.args[2]~=nil))then element_licencji_2=frame.args[2]..'<BR>'; end; local element_licencji_3; if((frame.args[3]~='')and(frame.args[3]~=nil))then element_licencji_3='<strong>Email:</strong> '..frame.args[3]..'<BR>'; end; local element_licencji_4; if((frame.args[4]~='')and(frame.args[4]~=nil))then element_licencji_4='<strong>Dotyczy:</strong> '..frame.args[4].."<BR>"; else element_licencji_4='<strong>Dotyczy:</strong> książki, do której należy ta strona, oraz w niej zawartych stron i w nich podstron, a także w nich kolumn, wraz z zawartościami.<BR>'; end; local element_licencji_5; if((frame.args[5]~='')and(frame.args[5]~=nil))then element_licencji_5=frame.args[5].."<BR>"; else element_licencji_5='Użytkownika książki, do której należy ta strona, oraz w niej zawartych stron i w nich podstron, a także w nich kolumn, wraz z zawartościami nie zwalnia z odpowiedzialności prawnoautorskiej nieprzeczytanie warunków licencjonowania.<BR>'; end; local element_licencji_6; if((frame.args[6]~='')and(frame.args[6]~=nil))then element_licencji_6='<strong>Umowa prawna:</strong> '..frame.args[6]..'<BR>'; else element_licencji_6='<strong>Umowa prawna:</strong> [http://creativecommons.org/licenses/by-sa/3.0/deed.pl Creative Commons: uznanie autorstwa, na tych samych warunkach, z możliwością obowiązywania dodatkowych ograniczeń].<BR>'; end; local element_licencji_7; if((frame.args[7]~='')and(frame.args[7]~=nil))then element_licencji_7=frame.args[7].."<BR>"; else element_licencji_7='Autor tej książki dołożył wszelką staranność, aby informacje zawarte w książce były poprawne i najwyższej jakości, jednakże nie udzielana jest żadna gwarancja, czy też rękojma. Autor nie jest odpowiedzialny za wykorzystanie informacji zawarte w książce, nawet jeśli wywołaby jakąś szkodę, straty w zyskach, zastoju w prowadzeniu firmy, przedsiębiorstwa lub spółki bądź utraty informacji, niezależnie czy autor (a nawet [https://pl.wikibooks.org Wikibooks]) został powiadomiony o możliwości wystąpienie szkód. Informacje zawarte w książce mogą być wykorzystane tylko na własną odpowiedzialność.<BR>'; end; local licencja=element_licencji_1..((element_licencji_2)and element_licencji_2 or "")..((element_licencji_3)and element_licencji_3 or "") ..element_licencji_4..element_licencji_5..element_licencji_6..element_licencji_7; return licencja; end; function p.Licencja(frame,czy_rozciagnij) local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; local menu_z_licencja; local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki].licencja; if(licencja)then if(licencja[1])then local frame={}; frame.args={licencja[1],licencja[2],licencja[3],licencja[4],licencja[5],licencja[6],licencja[7]}; local ramka_z_licencja='<div style="margin-left:0px;padding:0.1875rem;width:100%;height:auto;box-sizing:border-box;word-break:break-word;">'..p["WstępDoLicencji"](frame)..'</div>'; menu_z_licencja='{{Tabela nawigacyjna|styl=width:'..(czy_rozciagnij and "100%" or "auto")..';font-size:0.875rem;line-height:1.2;background-color:white;|tytuł=<div style="font-size:0.875rem;line-height:1.2;background-color:white;text-align:left;white-space:nowrap;">Licencja</div>|spis='..ramka_z_licencja..'|funkcja=PokazanaWikitabelowaListaMenu}}'; else return nil; end; local frame=mw.getCurrentFrame(); local rozwiniety_wikikod=frame:preprocess(menu_z_licencja); return rozwiniety_wikikod; else return nil; end; end; function p.Autor(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; local nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local licencja=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki].licencja; if(tabela_listy_danych_analizy_ksiazki.licencja)then if(licencja and licencja[1])then return licencja[1]; end; end; end; p["NazwaLicencjaWykazSpisTreściModułuKsiążki"]=function(frame) local prawe_menu=""; local parametry_modul=require("Module:Parametry"); local czy_rozciagnij=parametry_modul.CzyTak(frame.args["rozciągnij"]) if(parametry_modul.CzyTak(frame.args[1]))then prawe_menu='<div style="margin-top:0.3125rem;font-size:1.9em;line-height:1.5625rem;text-align:left;">'..p["NazwaAktualnyModuł"]()..'</div><hr class=\"pierwsza_strona_spis_treści-hr\"/>'; end; if(parametry_modul.CzyTak(frame.args[2]))then local licencja=p.Licencja(frame,czy_rozciagnij); if(licencja~=nil)then prawe_menu=prawe_menu..licencja; else local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local uchwyt_strony=mw.title.getCurrentTitle(); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](); local element_zdania_kategorii=(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "na stronach głównych, książek" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "na stronach głównych, książek dla dzieci" or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and "na stronach głównych, książek użytkowników" or((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and "na stronach głównych, książek brudnopisu projektu" or "na stronach głównych, publikacji"))); local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local kategoria_braku_licencji=(not tabela_listy_danych_analizy_ksiazki.korzystane_strona_glowna_nie_istnieje)and"[["..nazwy_np_modul.Category..": Brak licencji, "..element_zdania_kategorii.."]]" or ""; prawe_menu=prawe_menu..kategoria_braku_licencji; end; end; if(parametry_modul.CzyTak(frame.args[3]))then local wykaz_artykulow=p["WykazModułówKsiążki"](frame,czy_rozciagnij); if(wykaz_artykulow~=nil)then prawe_menu=prawe_menu.."<hr class=\"pierwsza_strona_spis_treści-hr\"/>"..wykaz_artykulow; end; end; if(parametry_modul.CzyTak(frame.args[4]))then local spis_tresci=p.TOC(frame,czy_rozciagnij,true); if(spis_tresci~=nil)then prawe_menu=prawe_menu.."<hr class=\"pierwsza_strona_spis_treści-hr\"/><div class=\"pierwsza_strona_spis_treści\">"..spis_tresci.."</div>"; end; end; local wysokosc=frame.args["wysokość"]; return "<div style=\"padding:0.3125rem;border: solid #aaa 1px;background-color:white;box-sizing:border-box;width:43.75rem;\"><div class=\"pierwsza_strona mw-overflow-y\" style=\"max-height:"..(wysokosc or "100%")..";overflow:auto;width:100%;height:100%;box-sizing:border-box;\"><div style=\"display:flex;flex-direction:column;width:auto;height:auto;box-sizing:border-box;\">"..prawe_menu.."</div></div></div>"; end; p["SpisTreści"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); local nazwa_artykulu=args["artykuł"] or args[1] or "Przykładowy artykuł"; local nazwa_ksiazki=args["książka"] or args[2]; local czy_analiza=parametry_modul.CzyTak(args["analiza"]); local czy_specjalne=parametry_modul.CzyTak(args["specjalne"]); local czy_parser=parametry_modul.CzyTak(args["parser"]); local dokumentacja=args["dokumentacja"]; local czy_dokumentacja=parametry_modul.CzyTak(dokumentacja); local czy_math=parametry_modul.CzyTak(args["wzory"]); local czy_math_analiza=parametry_modul.CzyTak(args["wzory-analiza"]); local czy_bez_przypisow=parametry_modul.CzyTak(args["bez przypisów"]); if(not dokumentacja)then czy_dokumentacja=czy_analiza or czy_specjalne or czy_parser; end local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; if(not parametry_modul.CzyTak(nazwa_ksiazki))then local uzyskana_nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local uzyskana_nazwa_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local uzyskana_nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; nazwa_ksiazki=((uzyskana_nazwa_przestrzeni~="") and (uzyskana_nazwa_przestrzeni..":") or "")..((uzyskana_nazwa_przestrzeni_ksiazki~="") and (uzyskana_nazwa_przestrzeni_ksiazki.."/") or "")..uzyskana_nazwa_ksiazki; end; local brak=(nazwa_artykulu and mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]") or nil) or (nazwa_ksiazki and mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]") or nil); if(brak~=nil)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](); local element_zdania_kategorii=(nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Main)and "artykułów," or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikijunior)and "artykułów dla dzieci," or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.User)and "stron użytkowników," or ((nazwa_przestrzeni_nazw_strony==nazwy_np_modul.Wikibooks)and "stron brudnopisu projektu," or "stron,"))); return "[["..nazwy_np_modul.Category..":Nazwy "..element_zdania_kategorii.." w spisach treści, zawierają niedozwolone znaki]]"; end; local html_modul=require("Module:Html"); local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_modulu=nazwy_modul["NazwaModułu"](tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu); local techniczne_modul=require("Module:Techniczne"); nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true); nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=nazwa_modulu,}; local nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; local pelna_nazwa_strony=((not nazwa_artykulu) or (nazwa_artykulu==""))and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu; local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_strony); if(strona)then pelna_nazwa_strony=strona; nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony); else nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony); end; local szablonowe_modul=require("Module:Szablonowe"); local tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony; if((czy_analiza)or(czy_parser))then tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(pelna_nazwa_strony,false); else tekst_artykulu=p.SpreparowanyWikikodStrony(pelna_nazwa_strony,not czy_dokumentacja); if(tekst_artykulu)then if(czy_dokumentacja)then tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony=szablonowe_modul:UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(pelna_nazwa_strony); else tekst_artykulu,tablica_obiektow_strony_dany_modul_uzyskany=szablonowe_modul:KodujWzoryMatematyczneTekstu(tekst_artykulu); if((not czy_math)and(not czy_math_analiza))then tablica_obiektow_strony_dany_modul_uzyskany=nil; end; end; end; end; local nazwa=args["nazwa"] or args[3]; local nazwa_strony_artykulu=parametry_modul.CzyTak(nazwa) and nazwa or nazwa_artykulu; local dodatek=args["dodatek"] or args[4]; local poziom=tonumber(args["poziom"]) or 6; if(not tekst_artykulu)then if(nazwa_artykulu~="")then return "\n"..mw.ustring.rep("=",poziom).."<span style=\"color:red\">[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]</span>"..mw.ustring.rep("=",poziom).."\n"; else local blad_modul=require("Module:Błąd"); return blad_modul.error{args={[1]="Wywołano szablon z argumentem pierwszym pustym.",tag="span",}}; end; else local twor_spisu_tresci="[["..pelna_nazwa_strony.."|"..nazwa_strony_artykulu.."]]"..(((dodatek)and(dodatek~="")) and (" "..dodatek) or ""); twor_spisu_tresci=mw.ustring.rep("=",poziom)..twor_spisu_tresci..mw.ustring.rep("=",poziom).."\n"; --- local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil; if(((czy_dokumentacja)and((czy_specjalne)or(czy_parser)))or((not czy_dokumentacja)and(czy_math_analiza)))then tekst_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_artykulu,pelna_nazwa_strony,tablica_obiektow_strony_dany_modul_uzyskany); end; local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron"); local ulozenia_w_menu_spisu_tresci=stronicowyparser_glownafunkcjazbieraniadanych_modul:SpisRzeczyWedlePodanegoTekstu(tekst_artykulu,pelna_nazwa_strony,nil,nil,nil, tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni, tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu, tabela_listy_danych_analizy_ksiazki.nazwa_woluminu, nazwa_artykulu, "",tablica_obiektow_strony_dany_modul_uzyskany or {},nil,tablica_obiektow_strony_danych_kodow_specjalnych_modul,nil,true); local atrybuty="style=\"margin-left:20px\""; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local toc=stronicowyparser_potrzebne_modul.TOCSilnik(frame,ulozenia_w_menu_spisu_tresci, atrybuty,czy_bez_przypisow); local limit=args["limit"]; local czy_limit=parametry_modul.CzyTak(limit); toc=toc and frame:preprocess(toc) or nil; return '<div class="toc_ogólnie_spis toc_artykuł toclimit '..(czy_limit and ("toclimit-"..limit) or "")..'">\n'..twor_spisu_tresci..(toc and toc or "")..'</div>'; end; end; local function IteratorFunkcja() local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tabela_wypowiedzi=obiekty_modul.tablica_obiektowych_form; local licznik=1; return function() local tabela_obiektu=tabela_wypowiedzi[licznik]; if(not tabela_obiektu)then return nil;end; local wartosc1=tabela_obiektu[1]; local wartosc2=tabela_obiektu[4]; licznik=licznik+1; return wartosc1,wartosc2; end; end; local iterator=IteratorFunkcja(); for nazwa_obiektu,czesc_nazwy_funkcji in iterator do p["Numer"..czesc_nazwy_funkcji] = function(frame) local stronicowyparser_numerobiektu_modul=require("Module:StronicowyParser/NumerObiektu"); return stronicowyparser_numerobiektu_modul.NumerObiektu(frame,nazwa_obiektu); end; end; p["AnalizujSzablonemStronicowymArtykuł"]=function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; return ""; end; function p.formatowanie() local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; return tabela_listy_danych_analizy_ksiazki.formatowanie; end; function p.StronaZeSzablonemStronaStart() local tabela_listy_danych_analizy_ksiazki=mw.loadData('Module:StronicowyParser/informacje').tablica_zebranych_danych_woluminowych; return tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start; end; function p.WstawKategorie(frame) local stronicowyparser_kategorie_modul=require("Module:StronicowyParser/Kategorie"); return stronicowyparser_kategorie_modul.WstawKategorie(frame); end; function p.CzyStronaSubst(frame,czy_wymusic) if(czy_wymusic)then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame); local spis,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,tab_lista_artykulow_w_ksiazce,tab_lista_zmiennych_w_artykule=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame); if(not tab_lista_zmiennych_w_artykule)then return nil;end; return tab_lista_zmiennych_w_artykule.strona_zbiorcza; end; local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; if(tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then return "tak"; end; end; p["CzyArtykułKsiążki"]=function(frame) local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; if(tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then return "tak"; end; end; return p; sluj787j03of4genqfu6esjja4mvwmb Moduł:StronicowyParser/ZbieranieDanychStron 828 55009 555447 555446 2026-09-10T12:29:27Z Persino 2851 555447 Scribunto text/plain local p={}; function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod) if(lista_dwuelementowa)then local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then tabela_elementow_strony_kodow[nazwa_obiektu]={}; tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(not uchwyty_bez_numeracji)then tab_obiekt.uchwyty_bez_numeracji={}; uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; end; uchwyty_bez_numeracji[kod]=lista_dwuelementowa; end; end; function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod) local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then return nil;end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(uchwyty_bez_numeracji)then return uchwyty_bez_numeracji[kod]; end; end; function p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); if(uchwyt_obiektu~="")then KtorySzablonMaZwracacKategorie(uchwyt_obiektu); local lista_dwuelementowa={}; lista_dwuelementowa[1]=uchwyt_obiektu; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_obiektu=true; end; if(tab_numer)then tab_numer[nazwa_obiektu]=tab_numer[nazwa_obiektu]+1; local numer=tab_numer[nazwa_obiektu]; table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],numer,lista_dwuelementowa); else table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; return lista_dwuelementowa; end; end; function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji]; if(uchwyt_obiektu)then local lista_dwuelementowa=p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return lista_dwuelementowa; end; end; function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(tablica_przestrzeni_wszystkiego)then local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni]; if(tabela_przestrzeni_ksiazek)then local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki] if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then --czy_lista_niepusta=true; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); for _,tab_value in ipairs(tab_ksiazki.spis)do if(tab_value[2])then for _,artykul_w_bazie_element in ipairs(tab_value[2])do local artykul_w_bazie=artykul_w_bazie_element[1]; local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie); artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie; local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie); if(artykul_bez_naglowka_w_bazie==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu~=nazwa_przestrzeni_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu~=nazwa_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=nazwa_artykulu))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych stron",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"); end; end; end; end; end; function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and (nazwa_ksiazki=="") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and (nazwa_artykulu=="") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and (uchwyt_obiektu=="") or nil; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1); end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2); end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3); end; end; end; function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[bezuchwytowe and 1 or 2]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[bezuchwytowe and 2 or 3]; local parametry_modul=require("Module:Parametry"); local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; end; local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul.DecodeHtml(pelna_nazwa_ksiazki,true); local techniczne_modul=require("Module:Techniczne"); pelna_nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_ksiazki,[2]=nazwa_modulu_aktualna_czy_biezaca,}; ---- local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw))); --pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); end; return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; end; function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; if(not czy_inna_wartosc_tekst)then nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca,true); else nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=tab_nazwy[1],tab_nazwy[2],tab_nazwy[3],tab_nazwy[4]; end; --local ksiazkowe_modul=require("Module:Książkowe"); --pelna_nazwa_ksiazki=pelna_nazwa_ksiazki or ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](); --nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](); if((nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki)or(nazwa_artykulu))then local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw); local nazwa_ksiazki=nazwa_ksiazki or ksiazkowe_modul["NazwaTytułuKsiążki"](nil,tabela_nazw); local nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false); end; end; function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie) local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end; local parametry_modul=require("Module:Parametry"); if((nazwa_jednostki) and (nazwa_jednostki==""))then return;end; local szablonowe_modul=require("Module:Szablonowe"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu())) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu())) )then return;end; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local tabela_nazw_art={}; local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art); if(nazwa_przestrzeni)then nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true); end; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local techniczne_modul=require("Module:Techniczne"); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,}; --strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona); local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw))); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej); end; function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); local nazwy_modul=require("Module:Nazwy"); local czy_inna_wartosc_tekst=true; if((nazwa_artykulu)and(nazwa_ksiazki))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwy_modul["NazwaModułu"]("",nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((nazwa_artykulu)and(not nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or (ksiazkowe_modul["NazwaKsiążki"]()..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((not nazwa_artykulu)and(nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ksiazkowe_modul["NazwaKsiążki"](); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); else p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); end; end; function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE) local pudelko_modul=require("Module:Pudełko"); if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni)))or(nazwa_przestrzeni==""))) and((nazwa_przestrzeni_ksiazki)and(((nazwa_przestrzeni_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni_ksiazki)))or(nazwa_przestrzeni_ksiazki==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_ksiazki))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_artykulu)))or(nazwa_artykulu==""))) )then if(__FUNKCJA_SPRAWDZANIE)then __FUNKCJA_SPRAWDZANIE(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"); end; else if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"); end; end; end; end; function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) local linkobiekttab=tablica_zmiennych.linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; end; function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz) p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,function() local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tablica_zmiennych2={}; tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0,tablica_zmiennych2,czy_inna=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych2); if(tabela_listy_danych_analizy_ksiazki0)then if((not czy_inna)or(not tablica_zmiennych2))then return;end; local stronicowyparser_szablony_tekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); local JuzPoliczone=function() if(czy_pobierz)then stronicowyparser_szablony_tekstu_modul.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,false); end; if(not tablica_zmiennych2.dane_juz_policzone)then tablica_zmiennych2.dane_juz_policzone={};end; local tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; if(not tab_nazwa_obiektu)then tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]={}; tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; end; local tab_uchwyt=tab_nazwa_obiektu[uchwyt_obiektu]; if(tab_uchwyt)then return true; end; tab_nazwa_obiektu[uchwyt_obiektu]=true; return false; end; if(not parametry_modul.CzyTak(tabela_listy_danych_analizy_ksiazki0))then local czy_policzone=JuzPoliczone(); if(czy_policzone)then return; end; else JuzPoliczone(); end; stronicowyparser_szablony_tekstu_modul.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2); p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local CzyLink=czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2.CzyLink; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in ipairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu); end; p.PusteParametryReferencji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"); end; end; else p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; end); end; function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca); ---- local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(uchwyt_obiektu))then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); end; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(parametry_modul.CzyTak(uchwyt_obiektu))then nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; elseif(nazwa_ksiazki=="")then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu) or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu) or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz); else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu); end; KtorySzablonMaZwracacKategorie(uchwyt_obiektu); end; function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej) local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end; local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki]; if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki]; if(not tablica_ksiazki.lista_podstron_woluminu)then tablica_ksiazki.lista_podstron_woluminu={};end; if(nazwa_artykulu)then if(not tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu])then tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]; return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany; else return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki; end; end; local korzystany_wolumin=false; local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not czy_artykul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki))then korzystany_wolumin=true; if(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu)then return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; else korzystany_wolumin=true; end; if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_przestrzeni_ksiazki=tabela_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_przestrzeni_ksiazki)then local tabela_ksiazka=tabela_przestrzeni_ksiazki[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_podstron_woluminu; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local dane_zebrane_ze_stron=tabela_artykul.dane_zebrane_ze_stron; ---- if(not czy_artykul_korzystany)then if(tabela_artykul.TOCSPIS_FUNCTION)then local wynik=tabela_artykul.TOCSPIS_FUNCTION(); if(wynik)then tabela_artykul.TOCSPIS_FUNCTION=nil; end; end; end; return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true; end; end; end; end; end; else return nil; end; else return nil; end; return true; end; local nazwy_modul=require("Module:Nazwy"); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,czy_inna=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local function StronaSubstFunkcja(tabela_artykul,spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((czy_szablon_pudelkowy_strony_zbiorczej)and(not czy_artykul_korzystany)and(tabela_artykul)and(not tabela_artykul.strona_zbiorcza))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end; tabela_artykul.strona_zbiorcza=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; end; if(not wartosc_wyniku)then return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; elseif(wartosc_wyniku==0)then if(tabela_artykul)then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; else return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; end; end; ---- local pozawoluminowe_strony; ---- local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) )then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); pozawoluminowe_strony=true; end; ---- local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local parametry_modul=require("Module:Parametry"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); ---- local tekst_rozwiniety_calego_artykulu_ref=nil; local tablica_analizy_obiektow_strony_dany_modul_ref=nil; local tablica_danych_parametrow_szablonu_strony_ref=nil; ---- local function InneInformacjePrzebneDoAnalizowanejKsiazki() if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"]="tak";end; end; local czy_ksiazka_istnieje_w_tablicy=((tablica_ksiazki)and(tablica_ksiazki.czy_spis_analizowano))and true or false; if(not czy_ksiazka_istnieje_w_tablicy)then tablica_ksiazki.czy_spis_analizowano=true; local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści"); local nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp; local tabela_artykulow,tabela_licencji_spisu_tresci,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci=stronicowyparser_spistresci_modul.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,function(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona) local tablica_przestrzeni_strona=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni_strona]; if(tablica_przestrzeni_strona)then local tablica_przestrzeni_ksiazki_strona=tablica_przestrzeni_strona[nazwa_przestrzeni_ksiazki_strona]; if(tablica_przestrzeni_ksiazki_strona)then local tablica_ksiazki_strona=tablica_przestrzeni_ksiazki_strona[nazwa_ksiazki_strona]; if(tablica_ksiazki_strona)then if(tablica_ksiazki_strona.spis)then nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp=nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona; tablica_ksiazki.spis=tablica_ksiazki_strona.spis; tablica_ksiazki.licencja=tablica_ksiazki_strona.licencja; tablica_ksiazki.nazwa_bazowego_spisu=tablica_ksiazki_strona.nazwa_bazowego_spisu; tablica_ksiazki.tab_inne_spisy=tablica_ksiazki_strona.tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=tablica_ksiazki_strona.dodatkowe_strony_woluminu; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=tablica_ksiazki_strona.adres_woluminu_bazowego_spisu_rzeczy; tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,}; return 1; end; end; end end; end,function(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis) ---- if((nazwa_przestrzeni==nazwa_przestrzeni_ref_spis)and(nazwa_przestrzeni_ksiazki==nazwa_przestrzeni_ksiazki_ref_spis)and(nazwa_ksiazki==nazwa_ksiazki_ref_spis)and(nazwa_artykulu==nazwa_artykulu_ref_spis))then tekst_rozwiniety_calego_artykulu_ref=tekst_rozwiniety_calego_artykulu_ref_spis; local parametry_modul=require("Module:Parametry"); tablica_analizy_obiektow_strony_dany_modul_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_analizy_obiektow_strony_dany_modul_ref_spis); tablica_danych_parametrow_szablonu_strony_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_danych_parametrow_szablonu_strony_ref_spis); end; ---- end); local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres) tablica_ksiazki.spis=tabela_artykulow; if(czy_artykul_korzystany)then tablica_ksiazki.licencja=tabela_licencji_spisu_tresci; end; tablica_ksiazki.nazwa_bazowego_spisu=nazwa_glownego_spisu; tablica_ksiazki.tab_inne_spisy=tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=dodatkowe_artykuly; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=czy_podac_adres and adres_ksiazki_glownego_spisu_tresci or nil; end; if(tabela_artykulow==0)then if(czy_artykul_korzystany)then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"korzystana strona główna nie istnieje"); else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"dołączone strony główne nie istnieją",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(tabela_artykulow)then if(parametry_modul.TypeTable(tabela_artykulow))then if(adres_ksiazki_glownego_spisu_tresci)then __FUNKCJA_SPISU(tablica_ksiazki,true); local tablica_ksiazki_stara=tablica_ksiazki; local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1]; local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2]; local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3]; if((kod_wyniku==1)or(kod_wyniku==2))then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then local nazwa_artykulu=artykul; StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni ,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif((kod_wyniku==3)or(kod_wyniku==4))then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; end; else __FUNKCJA_SPISU(tablica_ksiazki,false); end; elseif(tabela_artykulow~=1)then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; end; else if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"))then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=""))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych książek na ich stronach głównych",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; end; end; end; end; end; ---- local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki(); if(wynik_bledu)then return wartosc_wyniku;end; local kod_wyniku_przekierowan=kod_wyniku_bazowy; ---- --if((not tablica_przestrzeni)or(not tablica_przestrzeni_ksiazki)or(not tablica_ksiazki)or(not artykul_analizowany))then -- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); --end; ---- if((tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy)and(kod_wyniku_bazowy))--[[and((kod_wyniku_bazowy==1)or(kod_wyniku_bazowy==2))]]then ---- nazwa_przestrzeni=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[1]; nazwa_przestrzeni_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[2]; nazwa_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[3]; nazwa_artykulu=artykul_bazowy; ---- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=tablica_ksiazki.referencja_do_nowej_formy_spisu[1],tablica_ksiazki.referencja_do_nowej_formy_spisu[2],tablica_ksiazki.referencja_do_nowej_formy_spisu[3]; end; local tabela_artykulow=tablica_ksiazki.spis; if(tabela_artykulow)then local nazwa_glownego_spisu=tablica_ksiazki.nazwa_bazowego_spisu; local tab_inne_spisy=tablica_ksiazki.tab_inne_spisy; local dodatkowe_artykuly=tablica_ksiazki.dodatkowe_strony_woluminu local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,false); if(kod_wyniku)then nazwa_artykulu=artykul; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; kod_wyniku_przekierowan=kod_wyniku_przekierowan or kod_wyniku; end; local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local PrzekierownieAwaryjne=function() if(not kod_wyniku_przekierowan)then --local artykul2,kod_wyniku2=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu); if(strona)then if(strona~=nazwa_modulu)then ---- local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazwa); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif(wartosc_wyniku==0)then if(tabela_artykul)then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; else return wartosc_wyniku; end; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); nazwa_modulu=strona; else return 0; end; end; end; end; local wynik=PrzekierownieAwaryjne(); if(czy_artykul_korzystany)then self.nazwa_modulu_biezaca=nazwa_modulu; end; if(wynik)then return wynik;end; ---- if(czy_artykul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu=nazwa_przestrzeni_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=nazwa_artykulu; end; end; local nazwa_modulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu) or nazwa_modulu; -- przydzielanie tablicy if(czy_artykul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tablica_zmiennych)then tablica_zmiennych={};end; if(not tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)then tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local CzyLink=element_w_tablicy_obiekt.CzyLink; local CzyNum=element_w_tablicy_obiekt.CzyNum; local wartosc=element_w_tablicy_obiekt[1]; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum,}; if(czy_artykul_korzystany)then tablica_zmiennych.linkobiekt[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum;};end; end; local function StronaZbiorcza() if(czy_artykul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; local wynik=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,tablica_ksiazki.spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); artykul_analizowany.strona_zbiorcza=(wynik and "tak" or ""); return wynik; end; return nil; end; local strona_zbiorcza=StronaZbiorcza(); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); ---- local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; if((not tekst_rozwiniety_calego_artykulu_ref)or(not tablica_analizy_obiektow_strony_dany_modul_ref)or(not tablica_danych_parametrow_szablonu_strony_ref))then tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))and true or nil), nil) else tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=tekst_rozwiniety_calego_artykulu_ref,tablica_analizy_obiektow_strony_dany_modul_ref,tablica_danych_parametrow_szablonu_strony_ref; end; ---- if(not czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; if(czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); if((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))then local aktualna_nazwa_modulu=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwa_modulu_aktualna_czy_biezaca or nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu); local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(self,aktualna_nazwa_modulu); if(tekst)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,aktualna_nazwa_modulu); local tablica_danych_parametrow_szablonu_strony={}; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,aktualna_nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return true; elseif(stronicowyparser_obiekty_modul.strona_start[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return true; end; end); if(wynik)then break;end; end; end; end; end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; ---- local tablica_obiekty=stronicowyparser_obiekty_modul.obiekty; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local format_elementowy_referencji_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_referencji_obiektowy; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; local szablony_wykorzystywane_przez_strony_zbiorcze=stronicowyparser_obiekty_modul.szablony_wykorzystywane_przez_strony_zbiorcze; local format_elementowy_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_obiektowy; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; ---- local strona_start=stronicowyparser_obiekty_modul.strona_start; local strona_start_ze_spisem_rzeczy_strony=stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony; local strona_start_inne=stronicowyparser_obiekty_modul.strona_start_inne; local szablony_strony_zbiorczej=stronicowyparser_obiekty_modul.strona_zbiorcza; ---- local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe; local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe; local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu; local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego; ---- local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tabela_elementow_strony_kodow={}; -- for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) if(czy_artykul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(strona_start[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif(strona_start_inne[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_prestreni_nazw))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_przestrzeni))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; end; end; local plik=mw.ustring.match(nazwa_szablonu_wywolania,"^:"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=(nazwa_szablonu_wywolania=="Wypowiedzenie"); local czy_linkobiekt; local czy_link;local czy_pobierz; local czy_wypowiedzenie_z_parametrami; local czy_linkobiekt_z_parametrami; if(czy_wypowiedzenie)then czy_linkobiekt=false; czy_link=false; czy_pobierz=false; czy_wypowiedzenie_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["rodzaj"]); else czy_linkobiekt=(nazwa_szablonu_wywolania=="LinkObiekt"); if(czy_linkobiekt)then czy_link=true; czy_pobierz=false; czy_linkobiekt_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["typ"]); else czy_link=mw.ustring.match(nazwa_szablonu_wywolania,"^Link"); czy_pobierz=(not czy_link) and mw.ustring.match(nazwa_szablonu_wywolania,"^Pobierz") or nil; end; end; if((not czy_link)and(not czy_pobierz))then local wartosc_elementu;local numer_uchwytu; if(not czy_wypowiedzenie_z_parametrami) then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; else local rodzaj=tabela_parametrow_szablonu["rodzaj"]; if(rodzaj)then wartosc_elementu=format_elementowy_obiektowy[rodzaj] and rodzaj or nil; if(wartosc_elementu)then numer_uchwytu=tablica_obiekty[5]; end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; elseif(czy_artykul_korzystany)then if(czy_link)then local wartosc_elementu; if(not czy_linkobiekt_z_parametrami)then wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; else local typ=tabela_parametrow_szablonu["typ"]; if(typ)then typ=format_elementowy_referencji_obiektowy[typ] and typ or nil; if(typ)then wartosc_elementu=mw.getContentLanguage():ucfirst(typ); end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; end; end; elseif(czy_pobierz)then local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,true); return; end; end; end; if(czy_wypowiedzenie)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artykul_korzystany,tablica_obiekty[5],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,lista_dwuelementowa,kod); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); if(lista_dwuelementowa)then local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); local tekst=stronicowyparser_szablonytekstu_modul.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu); local bez_preprocess=stronicowyparser_szablonytekstu_modul.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu); local czy_bez_preprocess=parametry_modul.CzyTak(bez_preprocess); if(tekst)then local czy_szablon_wszystko=false; tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul, function(szablon,obiekt,kod) if(czy_bez_preprocess)then return nil;end; if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if( (tab_szablony[nazwa_szablonu]) or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu]) or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu]) or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu]) )then if(not czy_artykul_korzystany)then tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")) if(self)then local czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz"); if(czy_link_lub_pobierz)then p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu); end; end; end; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end; return nil; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- instrukcje warunkowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- wywołania ramek Lua w Scribunto return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- tagi szablonowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end); czy_szablon_wszystko=czy_szablon_wszystko or true; if(wynik)then return wynik;end; elseif(obiekt=="ZMIENNA")then czy_szablon_wszystko=czy_szablon_wszystko or true; local zawartosc=mw.ustring.match(szablon,"^{{{(.*)}}}$"); if(zawartosc)then zawartosc=mw.ustring.gsub(zawartosc,"|","{{!}}"); return "{{(((}}"..zawartosc.."{{)))}}"; end; end; end); if((czy_szablon_wszystko)and(not bez_preprocess))then local frame=mw.getCurrentFrame(); tekst=frame:preprocess(tekst); end; lista_dwuelementowa[2]=tekst; end; --local __metatabelka=getmetatable(tabela_parametrow_szablonu); --if(__metatabelka)then setmetatable(tabela_parametrow_szablonu,nil);end; stronicowyparser_szablonytekstu_modul.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany); end; return; elseif(czy_artykul_korzystany)then if(czy_linkobiekt)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="LinkObiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,"Obiekt",nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else if(stronicowyparser_obiekty_modul.szablony_z_lokalnym_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return; elseif(stronicowyparser_obiekty_modul.bez_uchwytow_spis_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; elseif(stronicowyparser_obiekty_modul.szablony_spisu[nazwa_szablonu_wywolania])then local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; if( (parametry_modul.CzyTak(tabela_parametrow_szablonu["analiza"])) and(parametry_modul.CzyTak(tabela_parametrow_szablonu["parser"])) )then p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); end; return; else local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=nazwa_szablonu_wywolania..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; if((stronicowyparser_obiekty_modul.szablony_kontenerowe[nazwa_szablonu_wywolania]) or(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]) )then if(szablony_wykorzystywane_przez_strony_zbiorcze[nazwa_szablonu_wywolania])then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nil,KtorySzablonMaZwracacKategorie); end; return; elseif((strona_zbiorcza)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); return; end; end; end; end; end; end; end; end; ---- local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_danych_parametrow_szablonu_strony,AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego); end; local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer); end; end; if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony=nazwy_modul["PEŁNABAZOWANAZWASTRONY"](nazwa_modulu); end; IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu); ---- local tablica_danych_nazwy_artykulu=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu] or {}; tablica_danych_nazwy_artykulu.uchwyty_i_numeracje=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; ---- local wiki_modul=require("Module:Wiki"); tablica_danych_nazwy_artykulu.link_wikidane={wiki_modul.KodyKlasStronyNaDanejWiki{["strona"]=nazwa_modulu_aktualna_czy_biezaca,["nagłówek"]=true,["aktywny"]=true,},}; if(not czy_artykul_korzystany)then if(pozawoluminowe_strony)then if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then local nazwa_modulu_korzystana_bazowa=self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony; local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne"); local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnika"](nazwa_modulu_korzystana_bazowa,nazwa_modulu); tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,pozawoluminowe_strony,czy_artykul_korzystany,}; end; else local niekorzystany_wolumin=(not korzystany_wolumin); if(niekorzystany_wolumin)then if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne"); local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnikaDołączonejKsiążki"](nazwa_ksiazki); tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,niekorzystany_wolumin,czy_artykul_korzystany,}; end; end; end; end; ---- if(czy_artykul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); end; end; local strona; if(czy_artykul_korzystany)then strona="";else strona=nazwa_modulu;end; ---- if(czy_artykul_korzystany)then local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); stronicowyparser_szablonytekstu_modul.UstawPobierzKorzystanie(tablica_zmiennych); tekst_rozwiniety_calego_artykulu=stronicowyparser_szablonytekstu_modul.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu) or tekst_rozwiniety_calego_artykulu; end; ---- local function SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca) return function() if(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)) or((not czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)))then ---- local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil; ---- tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false); ---- local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"powtórka nagłówek w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"nagłowek w tekście rozdziału w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu() return stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); end; local nazwa_naglowka=stronicowyparser_obiekty_modul.nazwa_szablonu_wprowadzenia_tekstu; local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron"); local tablica_naglowka_obiekty=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_naglowka]; tablica_naglowka_obiekty.uchwyty_bez_numeracji={}; local toc=stronicowyparser_glownafunkcjazbieraniadanych_modul.SpisRzeczyWedlePodanegoTekstu(self,tekst_rozwiniety_calego_artykulu,strona, czy_artykul_korzystany,nil,tablica_naglowka_obiekty.uchwyty_bez_numeracji, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,{KtorySzablonMaZwracacKategorieNaglowek,KtorySzablonMaZwracacKategorieTekst,CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu,},nil,tabela_elementow_strony_kodow); tablica_danych_nazwy_artykulu.TOC=toc; return true; end; end; end; local czy_spis_function=SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca); local wynik=czy_spis_function(); if(not czy_artykul_korzystany)then if(not wynik)then tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=czy_spis_function; end; end; StronaSubstFunkcja(tablica_danych_nazwy_artykulu,tablica_ksiazki.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.link_wikidane=tablica_danych_nazwy_artykulu.link_wikidane; self.tabela_listy_danych_analizy_ksiazki.prefiks_numeru_woluminowego_strony=tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw[nazwa_przestrzeni_ksiazki]; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; --self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron=tablica_zmiennych; end; if(not czy_artykul_korzystany)then tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=tablica_zmiennych; if(not self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista)then self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista={};end; table.insert(self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista,tablica_danych_nazwy_artykulu); else local dane_zebrane_ze_stron_lista=self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista; if(dane_zebrane_ze_stron_lista)then for _,tablica_danych_nazwy_artykulu in ipairs(dane_zebrane_ze_stron_lista)do tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=nil; tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=nil; end; end; tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane=nil; end; return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true; end; return p; 1ocban3h4cc7pnn5l8cuf6jchum2u5s 555450 555447 2026-09-10T13:01:13Z Persino 2851 555450 Scribunto text/plain local p={}; function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod) if(lista_dwuelementowa)then local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then tabela_elementow_strony_kodow[nazwa_obiektu]={}; tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(not uchwyty_bez_numeracji)then tab_obiekt.uchwyty_bez_numeracji={}; uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; end; uchwyty_bez_numeracji[kod]=lista_dwuelementowa; end; end; function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod) local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then return nil;end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(uchwyty_bez_numeracji)then return uchwyty_bez_numeracji[kod]; end; end; function p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); if(uchwyt_obiektu~="")then KtorySzablonMaZwracacKategorie(uchwyt_obiektu); local lista_dwuelementowa={}; lista_dwuelementowa[1]=uchwyt_obiektu; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_obiektu=true; end; if(tab_numer)then tab_numer[nazwa_obiektu]=tab_numer[nazwa_obiektu]+1; local numer=tab_numer[nazwa_obiektu]; table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],numer,lista_dwuelementowa); else table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; return lista_dwuelementowa; end; end; function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji]; if(uchwyt_obiektu)then local lista_dwuelementowa=p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return lista_dwuelementowa; end; end; function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(tablica_przestrzeni_wszystkiego)then local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni]; if(tabela_przestrzeni_ksiazek)then local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki] if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then --czy_lista_niepusta=true; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); for _,tab_value in ipairs(tab_ksiazki.spis)do if(tab_value[2])then for _,artykul_w_bazie_element in ipairs(tab_value[2])do local artykul_w_bazie=artykul_w_bazie_element[1]; local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie); artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie; local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie); if(artykul_bez_naglowka_w_bazie==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu~=nazwa_przestrzeni_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu~=nazwa_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=nazwa_artykulu))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych stron",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"); end; end; end; end; end; function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and (nazwa_ksiazki=="") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and (nazwa_artykulu=="") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and (uchwyt_obiektu=="") or nil; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1); end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2); end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3); end; end; end; function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[bezuchwytowe and 1 or 2]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[bezuchwytowe and 2 or 3]; local parametry_modul=require("Module:Parametry"); local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; end; local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul.DecodeHtml(pelna_nazwa_ksiazki,true); local techniczne_modul=require("Module:Techniczne"); pelna_nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_ksiazki,[2]=nazwa_modulu_aktualna_czy_biezaca,}; ---- local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw))); --pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); end; return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; end; function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; if(not czy_inna_wartosc_tekst)then nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca,true); else nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=tab_nazwy[1],tab_nazwy[2],tab_nazwy[3],tab_nazwy[4]; end; --local ksiazkowe_modul=require("Module:Książkowe"); --pelna_nazwa_ksiazki=pelna_nazwa_ksiazki or ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](); --nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](); if((nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki)or(nazwa_artykulu))then local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw); local nazwa_ksiazki=nazwa_ksiazki or ksiazkowe_modul["NazwaTytułuKsiążki"](nil,tabela_nazw); local nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false); end; end; function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie) local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end; local parametry_modul=require("Module:Parametry"); if((nazwa_jednostki) and (nazwa_jednostki==""))then return;end; local szablonowe_modul=require("Module:Szablonowe"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu())) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu())) )then return;end; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local tabela_nazw_art={}; local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art); if(nazwa_przestrzeni)then nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true); end; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local techniczne_modul=require("Module:Techniczne"); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,}; --strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona); local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw))); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej); end; function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); local nazwy_modul=require("Module:Nazwy"); local czy_inna_wartosc_tekst=true; if((nazwa_artykulu)and(nazwa_ksiazki))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwy_modul["NazwaModułu"]("",nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((nazwa_artykulu)and(not nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or (ksiazkowe_modul["NazwaKsiążki"]()..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((not nazwa_artykulu)and(nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ksiazkowe_modul["NazwaKsiążki"](); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); else p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); end; end; function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE) local pudelko_modul=require("Module:Pudełko"); if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni)))or(nazwa_przestrzeni==""))) and((nazwa_przestrzeni_ksiazki)and(((nazwa_przestrzeni_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni_ksiazki)))or(nazwa_przestrzeni_ksiazki==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_ksiazki))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_artykulu)))or(nazwa_artykulu==""))) )then if(__FUNKCJA_SPRAWDZANIE)then __FUNKCJA_SPRAWDZANIE(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"); end; else if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"); end; end; end; end; function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) local linkobiekttab=tablica_zmiennych.linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; end; function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz) p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,function() local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tablica_zmiennych2={}; tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0,tablica_zmiennych2,czy_inna=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych2); if(tabela_listy_danych_analizy_ksiazki0)then if((not czy_inna)or(not tablica_zmiennych2))then return;end; local stronicowyparser_szablony_tekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); local JuzPoliczone=function() if(czy_pobierz)then stronicowyparser_szablony_tekstu_modul.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,false); end; if(not tablica_zmiennych2.dane_juz_policzone)then tablica_zmiennych2.dane_juz_policzone={};end; local tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; if(not tab_nazwa_obiektu)then tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]={}; tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; end; local tab_uchwyt=tab_nazwa_obiektu[uchwyt_obiektu]; if(tab_uchwyt)then return true; end; tab_nazwa_obiektu[uchwyt_obiektu]=true; return false; end; if(not parametry_modul.CzyTak(tabela_listy_danych_analizy_ksiazki0))then local czy_policzone=JuzPoliczone(); if(czy_policzone)then return; end; else JuzPoliczone(); end; stronicowyparser_szablony_tekstu_modul.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2); p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local CzyLink=czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2.CzyLink; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in ipairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu); end; p.PusteParametryReferencji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"); end; end; else p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; end); end; function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca); ---- local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(uchwyt_obiektu))then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); end; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(parametry_modul.CzyTak(uchwyt_obiektu))then nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; elseif(nazwa_ksiazki=="")then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu) or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu) or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz); else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu); end; KtorySzablonMaZwracacKategorie(uchwyt_obiektu); end; function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej) local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end; local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki]; if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki]; if(not tablica_ksiazki.lista_podstron_woluminu)then tablica_ksiazki.lista_podstron_woluminu={};end; if(nazwa_artykulu)then if(not tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu])then tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]; return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany; else return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki; end; end; local korzystany_wolumin=false; local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not czy_artykul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki))then korzystany_wolumin=true; if(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu)then return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; else korzystany_wolumin=true; end; if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_przestrzeni_ksiazki=tabela_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_przestrzeni_ksiazki)then local tabela_ksiazka=tabela_przestrzeni_ksiazki[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_podstron_woluminu; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local dane_zebrane_ze_stron=tabela_artykul.dane_zebrane_ze_stron; ---- if(not czy_artykul_korzystany)then if(tabela_artykul.TOCSPIS_FUNCTION)then local wynik=tabela_artykul.TOCSPIS_FUNCTION(); if(wynik)then tabela_artykul.TOCSPIS_FUNCTION=nil; end; end; end; return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true; end; end; end; end; end; else return nil; end; else return nil; end; return true; end; local nazwy_modul=require("Module:Nazwy"); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,czy_inna=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local function StronaSubstFunkcja(tabela_artykul,spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((czy_szablon_pudelkowy_strony_zbiorczej)and(not czy_artykul_korzystany)and(tabela_artykul)and(not tabela_artykul.strona_zbiorcza))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end; tabela_artykul.strona_zbiorcza=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; end; if(not wartosc_wyniku)then return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; elseif(wartosc_wyniku==0)then if(tabela_artykul)then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; else return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; end; end; ---- local pozawoluminowe_strony; ---- local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) )then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); pozawoluminowe_strony=true; end; ---- local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local parametry_modul=require("Module:Parametry"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); ---- local tekst_rozwiniety_calego_artykulu_ref=nil; local tablica_analizy_obiektow_strony_dany_modul_ref=nil; local tablica_danych_parametrow_szablonu_strony_ref=nil; ---- local function InneInformacjePrzebneDoAnalizowanejKsiazki() if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"]="tak";end; end; local czy_ksiazka_istnieje_w_tablicy=((tablica_ksiazki)and(tablica_ksiazki.czy_spis_analizowano))and true or false; if(not czy_ksiazka_istnieje_w_tablicy)then tablica_ksiazki.czy_spis_analizowano=true; local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści"); local nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp; local tabela_artykulow,tabela_licencji_spisu_tresci,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci=stronicowyparser_spistresci_modul.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,function(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona) local tablica_przestrzeni_strona=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni_strona]; if(tablica_przestrzeni_strona)then local tablica_przestrzeni_ksiazki_strona=tablica_przestrzeni_strona[nazwa_przestrzeni_ksiazki_strona]; if(tablica_przestrzeni_ksiazki_strona)then local tablica_ksiazki_strona=tablica_przestrzeni_ksiazki_strona[nazwa_ksiazki_strona]; if(tablica_ksiazki_strona)then if(tablica_ksiazki_strona.spis)then nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp=nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona; tablica_ksiazki.spis=tablica_ksiazki_strona.spis; tablica_ksiazki.licencja=tablica_ksiazki_strona.licencja; tablica_ksiazki.nazwa_bazowego_spisu=tablica_ksiazki_strona.nazwa_bazowego_spisu; tablica_ksiazki.tab_inne_spisy=tablica_ksiazki_strona.tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=tablica_ksiazki_strona.dodatkowe_strony_woluminu; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=tablica_ksiazki_strona.adres_woluminu_bazowego_spisu_rzeczy; tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,}; return 1; end; end; end end; end,function(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis) ---- if((nazwa_przestrzeni==nazwa_przestrzeni_ref_spis)and(nazwa_przestrzeni_ksiazki==nazwa_przestrzeni_ksiazki_ref_spis)and(nazwa_ksiazki==nazwa_ksiazki_ref_spis)and(nazwa_artykulu==nazwa_artykulu_ref_spis))then tekst_rozwiniety_calego_artykulu_ref=tekst_rozwiniety_calego_artykulu_ref_spis; local parametry_modul=require("Module:Parametry"); tablica_analizy_obiektow_strony_dany_modul_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_analizy_obiektow_strony_dany_modul_ref_spis); tablica_danych_parametrow_szablonu_strony_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_danych_parametrow_szablonu_strony_ref_spis); end; ---- end); local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres) tablica_ksiazki.spis=tabela_artykulow; if(czy_artykul_korzystany)then tablica_ksiazki.licencja=tabela_licencji_spisu_tresci; end; tablica_ksiazki.nazwa_bazowego_spisu=nazwa_glownego_spisu; tablica_ksiazki.tab_inne_spisy=tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=dodatkowe_artykuly; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=czy_podac_adres and adres_ksiazki_glownego_spisu_tresci or nil; end; if(tabela_artykulow==0)then if(czy_artykul_korzystany)then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"korzystana strona główna nie istnieje"); else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"dołączone strony główne nie istnieją",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(tabela_artykulow)then if(parametry_modul.TypeTable(tabela_artykulow))then if(adres_ksiazki_glownego_spisu_tresci)then __FUNKCJA_SPISU(tablica_ksiazki,true); local tablica_ksiazki_stara=tablica_ksiazki; local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1]; local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2]; local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3]; if((kod_wyniku==1)or(kod_wyniku==2))then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then local nazwa_artykulu=artykul; StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni ,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif((kod_wyniku==3)or(kod_wyniku==4))then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; end; else __FUNKCJA_SPISU(tablica_ksiazki,false); end; elseif(tabela_artykulow~=1)then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; end; else if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"))then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=""))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych książek na ich stronach głównych",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; end; end; end; end; end; ---- local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki(); if(wynik_bledu)then return wartosc_wyniku;end; local kod_wyniku_przekierowan=kod_wyniku_bazowy; ---- --if((not tablica_przestrzeni)or(not tablica_przestrzeni_ksiazki)or(not tablica_ksiazki)or(not artykul_analizowany))then -- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); --end; ---- if((tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy)and(kod_wyniku_bazowy))--[[and((kod_wyniku_bazowy==1)or(kod_wyniku_bazowy==2))]]then ---- nazwa_przestrzeni=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[1]; nazwa_przestrzeni_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[2]; nazwa_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[3]; nazwa_artykulu=artykul_bazowy; ---- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=tablica_ksiazki.referencja_do_nowej_formy_spisu[1],tablica_ksiazki.referencja_do_nowej_formy_spisu[2],tablica_ksiazki.referencja_do_nowej_formy_spisu[3]; end; local tabela_artykulow=tablica_ksiazki.spis; if(tabela_artykulow)then local nazwa_glownego_spisu=tablica_ksiazki.nazwa_bazowego_spisu; local tab_inne_spisy=tablica_ksiazki.tab_inne_spisy; local dodatkowe_artykuly=tablica_ksiazki.dodatkowe_strony_woluminu local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,false); if(kod_wyniku)then nazwa_artykulu=artykul; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; kod_wyniku_przekierowan=kod_wyniku_przekierowan or kod_wyniku; end; local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local PrzekierownieAwaryjne=function() if(not kod_wyniku_przekierowan)then --local artykul2,kod_wyniku2=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu); if(strona)then if(strona~=nazwa_modulu)then ---- local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazwa); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif(wartosc_wyniku==0)then if(tabela_artykul)then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; else return wartosc_wyniku; end; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); nazwa_modulu=strona; else return 0; end; end; end; end; local wynik=PrzekierownieAwaryjne(); if(czy_artykul_korzystany)then self.nazwa_modulu_biezaca=nazwa_modulu; end; if(wynik)then return wynik;end; ---- if(czy_artykul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu=nazwa_przestrzeni_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=nazwa_artykulu; end; end; local nazwa_modulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu) or nazwa_modulu; -- przydzielanie tablicy if(czy_artykul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tablica_zmiennych)then tablica_zmiennych={};end; if(not tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)then tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local CzyLink=element_w_tablicy_obiekt.CzyLink; local CzyNum=element_w_tablicy_obiekt.CzyNum; local wartosc=element_w_tablicy_obiekt[1]; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum,}; if(czy_artykul_korzystany)then tablica_zmiennych.linkobiekt[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum;};end; end; local function StronaZbiorcza() if(czy_artykul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; local wynik=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,tablica_ksiazki.spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); artykul_analizowany.strona_zbiorcza=(wynik and "tak" or ""); return wynik; end; return nil; end; local strona_zbiorcza=StronaZbiorcza(); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); ---- local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; if((not tekst_rozwiniety_calego_artykulu_ref)or(not tablica_analizy_obiektow_strony_dany_modul_ref)or(not tablica_danych_parametrow_szablonu_strony_ref))then tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))and true or nil), nil) else tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=tekst_rozwiniety_calego_artykulu_ref,tablica_analizy_obiektow_strony_dany_modul_ref,tablica_danych_parametrow_szablonu_strony_ref; end; ---- if(not czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; if(czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); if((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))then local aktualna_nazwa_modulu=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwa_modulu_aktualna_czy_biezaca or nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu); local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(self,aktualna_nazwa_modulu); if(tekst)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,aktualna_nazwa_modulu); local tablica_danych_parametrow_szablonu_strony={}; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,aktualna_nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return true; elseif(stronicowyparser_obiekty_modul.strona_start[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return true; end; end); if(wynik)then break;end; end; end; end; end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; ---- local tablica_obiekty=stronicowyparser_obiekty_modul.obiekty; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local format_elementowy_referencji_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_referencji_obiektowy; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; local szablony_wykorzystywane_przez_strony_zbiorcze=stronicowyparser_obiekty_modul.szablony_wykorzystywane_przez_strony_zbiorcze; local format_elementowy_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_obiektowy; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; ---- local strona_start=stronicowyparser_obiekty_modul.strona_start; local strona_start_ze_spisem_rzeczy_strony=stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony; local strona_start_inne=stronicowyparser_obiekty_modul.strona_start_inne; local szablony_strony_zbiorczej=stronicowyparser_obiekty_modul.strona_zbiorcza; ---- local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe; local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe; local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu; local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego; ---- local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tabela_elementow_strony_kodow={}; -- for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) if(czy_artykul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(strona_start[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif(strona_start_inne[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_prestreni_nazw))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_przestrzeni))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; end; end; local plik=mw.ustring.match(nazwa_szablonu_wywolania,"^:"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=(nazwa_szablonu_wywolania=="Wypowiedzenie"); local czy_linkobiekt; local czy_link;local czy_pobierz; local czy_wypowiedzenie_z_parametrami; local czy_linkobiekt_z_parametrami; if(czy_wypowiedzenie)then czy_linkobiekt=false; czy_link=false; czy_pobierz=false; czy_wypowiedzenie_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["rodzaj"]); else czy_linkobiekt=(nazwa_szablonu_wywolania=="LinkObiekt"); if(czy_linkobiekt)then czy_link=true; czy_pobierz=false; czy_linkobiekt_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["typ"]); else czy_link=mw.ustring.match(nazwa_szablonu_wywolania,"^Link"); czy_pobierz=(not czy_link) and mw.ustring.match(nazwa_szablonu_wywolania,"^Pobierz") or nil; end; end; if((not czy_link)and(not czy_pobierz))then local wartosc_elementu;local numer_uchwytu; if(not czy_wypowiedzenie_z_parametrami) then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; else local rodzaj=tabela_parametrow_szablonu["rodzaj"]; if(rodzaj)then wartosc_elementu=format_elementowy_obiektowy[rodzaj] and rodzaj or nil; if(wartosc_elementu)then numer_uchwytu=tablica_obiekty[5]; end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; elseif(czy_artykul_korzystany)then if(czy_link)then local wartosc_elementu; if(not czy_linkobiekt_z_parametrami)then wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; else local typ=tabela_parametrow_szablonu["typ"]; if(typ)then typ=format_elementowy_referencji_obiektowy[typ] and typ or nil; if(typ)then wartosc_elementu=mw.getContentLanguage():ucfirst(typ); end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; end; end; elseif(czy_pobierz)then local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,true); return; end; end; end; if(czy_wypowiedzenie)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artykul_korzystany,tablica_obiekty[5],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,lista_dwuelementowa,kod); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); if(lista_dwuelementowa)then local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); local tekst=stronicowyparser_szablonytekstu_modul.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu); local bez_preprocess=stronicowyparser_szablonytekstu_modul.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu); local czy_bez_preprocess=parametry_modul.CzyTak(bez_preprocess); if(tekst)then local czy_szablon_wszystko=false; tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul, function(szablon,obiekt,kod) if(czy_bez_preprocess)then return nil;end; if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if( (tab_szablony[nazwa_szablonu]) or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu]) or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu]) or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu]) )then if(not czy_artykul_korzystany)then tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")) if(self)then local czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz"); if(czy_link_lub_pobierz)then p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu); end; end; end; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end; return nil; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- instrukcje warunkowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- wywołania ramek Lua w Scribunto return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- tagi szablonowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end); czy_szablon_wszystko=czy_szablon_wszystko or true; if(wynik)then return wynik;end; elseif(obiekt=="ZMIENNA")then czy_szablon_wszystko=czy_szablon_wszystko or true; local zawartosc=mw.ustring.match(szablon,"^{{{(.*)}}}$"); if(zawartosc)then zawartosc=mw.ustring.gsub(zawartosc,"|","{{!}}"); return "{{(((}}"..zawartosc.."{{)))}}"; end; end; end); if((czy_szablon_wszystko)and(not bez_preprocess))then local frame=mw.getCurrentFrame(); tekst=frame:preprocess(tekst); end; lista_dwuelementowa[2]=tekst; end; --local __metatabelka=getmetatable(tabela_parametrow_szablonu); --if(__metatabelka)then setmetatable(tabela_parametrow_szablonu,nil);end; stronicowyparser_szablonytekstu_modul.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany); end; return; elseif(czy_artykul_korzystany)then if(czy_linkobiekt)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="LinkObiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,"Obiekt",nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else if(stronicowyparser_obiekty_modul.szablony_z_lokalnym_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return; elseif(stronicowyparser_obiekty_modul.bez_uchwytow_spis_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; elseif(stronicowyparser_obiekty_modul.szablony_spisu[nazwa_szablonu_wywolania])then local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; local czy_analiza=parametry_modul.CzyTak(tabela_parametrow_szablonu["analiza"]); local czy_dokumentacja=parametry_modul.CzyTak(tabela_parametrow_szablonu["dokumentacja"]); local czy_parser=parametry_modul.CzyTak(tabela_parametrow_szablonu["parser"]) if( ( ((czy_dokumentacja)and(czy_parser)) or((not czy_dokumentacja)and(czy_analiza)) )and(czy_parser) )then p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); end; return; else local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=nazwa_szablonu_wywolania..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; if((stronicowyparser_obiekty_modul.szablony_kontenerowe[nazwa_szablonu_wywolania]) or(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]) )then if(szablony_wykorzystywane_przez_strony_zbiorcze[nazwa_szablonu_wywolania])then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nil,KtorySzablonMaZwracacKategorie); end; return; elseif((strona_zbiorcza)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); return; end; end; end; end; end; end; end; end; ---- local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_danych_parametrow_szablonu_strony,AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego); end; local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer); end; end; if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony=nazwy_modul["PEŁNABAZOWANAZWASTRONY"](nazwa_modulu); end; IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu); ---- local tablica_danych_nazwy_artykulu=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu] or {}; tablica_danych_nazwy_artykulu.uchwyty_i_numeracje=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; ---- local wiki_modul=require("Module:Wiki"); tablica_danych_nazwy_artykulu.link_wikidane={wiki_modul.KodyKlasStronyNaDanejWiki{["strona"]=nazwa_modulu_aktualna_czy_biezaca,["nagłówek"]=true,["aktywny"]=true,},}; if(not czy_artykul_korzystany)then if(pozawoluminowe_strony)then if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then local nazwa_modulu_korzystana_bazowa=self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony; local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne"); local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnika"](nazwa_modulu_korzystana_bazowa,nazwa_modulu); tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,pozawoluminowe_strony,czy_artykul_korzystany,}; end; else local niekorzystany_wolumin=(not korzystany_wolumin); if(niekorzystany_wolumin)then if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne"); local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnikaDołączonejKsiążki"](nazwa_ksiazki); tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,niekorzystany_wolumin,czy_artykul_korzystany,}; end; end; end; end; ---- if(czy_artykul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); end; end; local strona; if(czy_artykul_korzystany)then strona="";else strona=nazwa_modulu;end; ---- if(czy_artykul_korzystany)then local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); stronicowyparser_szablonytekstu_modul.UstawPobierzKorzystanie(tablica_zmiennych); tekst_rozwiniety_calego_artykulu=stronicowyparser_szablonytekstu_modul.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu) or tekst_rozwiniety_calego_artykulu; end; ---- local function SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca) return function() if(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)) or((not czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)))then ---- local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil; ---- tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false); ---- local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"powtórka nagłówek w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"nagłowek w tekście rozdziału w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu() return stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); end; local nazwa_naglowka=stronicowyparser_obiekty_modul.nazwa_szablonu_wprowadzenia_tekstu; local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron"); local tablica_naglowka_obiekty=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_naglowka]; tablica_naglowka_obiekty.uchwyty_bez_numeracji={}; local toc=stronicowyparser_glownafunkcjazbieraniadanych_modul.SpisRzeczyWedlePodanegoTekstu(self,tekst_rozwiniety_calego_artykulu,strona, czy_artykul_korzystany,nil,tablica_naglowka_obiekty.uchwyty_bez_numeracji, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,{KtorySzablonMaZwracacKategorieNaglowek,KtorySzablonMaZwracacKategorieTekst,CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu,},nil,tabela_elementow_strony_kodow); tablica_danych_nazwy_artykulu.TOC=toc; return true; end; end; end; local czy_spis_function=SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca); local wynik=czy_spis_function(); if(not czy_artykul_korzystany)then if(not wynik)then tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=czy_spis_function; end; end; StronaSubstFunkcja(tablica_danych_nazwy_artykulu,tablica_ksiazki.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.link_wikidane=tablica_danych_nazwy_artykulu.link_wikidane; self.tabela_listy_danych_analizy_ksiazki.prefiks_numeru_woluminowego_strony=tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw[nazwa_przestrzeni_ksiazki]; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; --self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron=tablica_zmiennych; end; if(not czy_artykul_korzystany)then tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=tablica_zmiennych; if(not self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista)then self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista={};end; table.insert(self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista,tablica_danych_nazwy_artykulu); else local dane_zebrane_ze_stron_lista=self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista; if(dane_zebrane_ze_stron_lista)then for _,tablica_danych_nazwy_artykulu in ipairs(dane_zebrane_ze_stron_lista)do tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=nil; tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=nil; end; end; tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane=nil; end; return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true; end; return p; rjqtpf4myraum3tltbq2wkc6j1v41xk 555452 555450 2026-09-10T13:08:36Z Persino 2851 555452 Scribunto text/plain local p={}; function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod) if(lista_dwuelementowa)then local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then tabela_elementow_strony_kodow[nazwa_obiektu]={}; tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(not uchwyty_bez_numeracji)then tab_obiekt.uchwyty_bez_numeracji={}; uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; end; uchwyty_bez_numeracji[kod]=lista_dwuelementowa; end; end; function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod) local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then return nil;end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(uchwyty_bez_numeracji)then return uchwyty_bez_numeracji[kod]; end; end; function p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); if(uchwyt_obiektu~="")then KtorySzablonMaZwracacKategorie(uchwyt_obiektu); local lista_dwuelementowa={}; lista_dwuelementowa[1]=uchwyt_obiektu; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_obiektu=true; end; if(tab_numer)then tab_numer[nazwa_obiektu]=tab_numer[nazwa_obiektu]+1; local numer=tab_numer[nazwa_obiektu]; table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],numer,lista_dwuelementowa); else table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; return lista_dwuelementowa; end; end; function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji]; if(uchwyt_obiektu)then local lista_dwuelementowa=p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return lista_dwuelementowa; end; end; function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(tablica_przestrzeni_wszystkiego)then local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni]; if(tabela_przestrzeni_ksiazek)then local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki] if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then --czy_lista_niepusta=true; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); for _,tab_value in ipairs(tab_ksiazki.spis)do if(tab_value[2])then for _,artykul_w_bazie_element in ipairs(tab_value[2])do local artykul_w_bazie=artykul_w_bazie_element[1]; local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie); artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie; local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie); if(artykul_bez_naglowka_w_bazie==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu~=nazwa_przestrzeni_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu~=nazwa_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=nazwa_artykulu))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych stron",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"); end; end; end; end; end; function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and (nazwa_ksiazki=="") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and (nazwa_artykulu=="") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and (uchwyt_obiektu=="") or nil; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1); end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2); end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3); end; end; end; function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[bezuchwytowe and 1 or 2]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[bezuchwytowe and 2 or 3]; local parametry_modul=require("Module:Parametry"); local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; end; local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul.DecodeHtml(pelna_nazwa_ksiazki,true); local techniczne_modul=require("Module:Techniczne"); pelna_nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_ksiazki,[2]=nazwa_modulu_aktualna_czy_biezaca,}; ---- local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw))); --pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); end; return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; end; function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; if(not czy_inna_wartosc_tekst)then nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca,true); else nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=tab_nazwy[1],tab_nazwy[2],tab_nazwy[3],tab_nazwy[4]; end; --local ksiazkowe_modul=require("Module:Książkowe"); --pelna_nazwa_ksiazki=pelna_nazwa_ksiazki or ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](); --nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](); if((nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki)or(nazwa_artykulu))then local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw); local nazwa_ksiazki=nazwa_ksiazki or ksiazkowe_modul["NazwaTytułuKsiążki"](nil,tabela_nazw); local nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false); end; end; function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie) local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end; local parametry_modul=require("Module:Parametry"); if((nazwa_jednostki) and (nazwa_jednostki==""))then return;end; local szablonowe_modul=require("Module:Szablonowe"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu())) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu())) )then return;end; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local tabela_nazw_art={}; local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art); if(nazwa_przestrzeni)then nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true); end; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local techniczne_modul=require("Module:Techniczne"); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,}; --strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona); local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw))); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej); end; function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); local nazwy_modul=require("Module:Nazwy"); local czy_inna_wartosc_tekst=true; if((nazwa_artykulu)and(nazwa_ksiazki))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwy_modul["NazwaModułu"]("",nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((nazwa_artykulu)and(not nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or (ksiazkowe_modul["NazwaKsiążki"]()..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((not nazwa_artykulu)and(nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ksiazkowe_modul["NazwaKsiążki"](); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); else p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); end; end; function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE) local pudelko_modul=require("Module:Pudełko"); if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni)))or(nazwa_przestrzeni==""))) and((nazwa_przestrzeni_ksiazki)and(((nazwa_przestrzeni_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni_ksiazki)))or(nazwa_przestrzeni_ksiazki==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_ksiazki))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_artykulu)))or(nazwa_artykulu==""))) )then if(__FUNKCJA_SPRAWDZANIE)then __FUNKCJA_SPRAWDZANIE(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"); end; else if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"); end; end; end; end; function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) local linkobiekttab=tablica_zmiennych.linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; end; function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz) p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,function() local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tablica_zmiennych2={}; tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0,tablica_zmiennych2,czy_inna=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych2); if(tabela_listy_danych_analizy_ksiazki0)then if((not czy_inna)or(not tablica_zmiennych2))then return;end; local stronicowyparser_szablony_tekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); local JuzPoliczone=function() if(czy_pobierz)then stronicowyparser_szablony_tekstu_modul.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,false); end; if(not tablica_zmiennych2.dane_juz_policzone)then tablica_zmiennych2.dane_juz_policzone={};end; local tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; if(not tab_nazwa_obiektu)then tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]={}; tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; end; local tab_uchwyt=tab_nazwa_obiektu[uchwyt_obiektu]; if(tab_uchwyt)then return true; end; tab_nazwa_obiektu[uchwyt_obiektu]=true; return false; end; if(not parametry_modul.CzyTak(tabela_listy_danych_analizy_ksiazki0))then local czy_policzone=JuzPoliczone(); if(czy_policzone)then return; end; else JuzPoliczone(); end; stronicowyparser_szablony_tekstu_modul.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2); p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local CzyLink=czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2.CzyLink; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in ipairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu); end; p.PusteParametryReferencji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"); end; end; else p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; end); end; function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca); ---- local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(uchwyt_obiektu))then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); end; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(parametry_modul.CzyTak(uchwyt_obiektu))then nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; elseif(nazwa_ksiazki=="")then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu) or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu) or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz); else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu); end; KtorySzablonMaZwracacKategorie(uchwyt_obiektu); end; function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej) local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end; local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki]; if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki]; if(not tablica_ksiazki.lista_podstron_woluminu)then tablica_ksiazki.lista_podstron_woluminu={};end; if(nazwa_artykulu)then if(not tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu])then tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]; return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany; else return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki; end; end; local korzystany_wolumin=false; local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not czy_artykul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki))then korzystany_wolumin=true; if(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu)then return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; else korzystany_wolumin=true; end; if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_przestrzeni_ksiazki=tabela_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_przestrzeni_ksiazki)then local tabela_ksiazka=tabela_przestrzeni_ksiazki[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_podstron_woluminu; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local dane_zebrane_ze_stron=tabela_artykul.dane_zebrane_ze_stron; ---- if(not czy_artykul_korzystany)then if(tabela_artykul.TOCSPIS_FUNCTION)then local wynik=tabela_artykul.TOCSPIS_FUNCTION(); if(wynik)then tabela_artykul.TOCSPIS_FUNCTION=nil; end; end; end; return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true; end; end; end; end; end; else return nil; end; else return nil; end; return true; end; local nazwy_modul=require("Module:Nazwy"); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,czy_inna=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local function StronaSubstFunkcja(tabela_artykul,spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((czy_szablon_pudelkowy_strony_zbiorczej)and(not czy_artykul_korzystany)and(tabela_artykul)and(not tabela_artykul.strona_zbiorcza))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end; tabela_artykul.strona_zbiorcza=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; end; if(not wartosc_wyniku)then return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; elseif(wartosc_wyniku==0)then if(tabela_artykul)then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; else return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; end; end; ---- local pozawoluminowe_strony; ---- local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) )then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); pozawoluminowe_strony=true; end; ---- local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local parametry_modul=require("Module:Parametry"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); ---- local tekst_rozwiniety_calego_artykulu_ref=nil; local tablica_analizy_obiektow_strony_dany_modul_ref=nil; local tablica_danych_parametrow_szablonu_strony_ref=nil; ---- local function InneInformacjePrzebneDoAnalizowanejKsiazki() if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"]="tak";end; end; local czy_ksiazka_istnieje_w_tablicy=((tablica_ksiazki)and(tablica_ksiazki.czy_spis_analizowano))and true or false; if(not czy_ksiazka_istnieje_w_tablicy)then tablica_ksiazki.czy_spis_analizowano=true; local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści"); local nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp; local tabela_artykulow,tabela_licencji_spisu_tresci,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci=stronicowyparser_spistresci_modul.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,function(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona) local tablica_przestrzeni_strona=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni_strona]; if(tablica_przestrzeni_strona)then local tablica_przestrzeni_ksiazki_strona=tablica_przestrzeni_strona[nazwa_przestrzeni_ksiazki_strona]; if(tablica_przestrzeni_ksiazki_strona)then local tablica_ksiazki_strona=tablica_przestrzeni_ksiazki_strona[nazwa_ksiazki_strona]; if(tablica_ksiazki_strona)then if(tablica_ksiazki_strona.spis)then nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp=nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona; tablica_ksiazki.spis=tablica_ksiazki_strona.spis; tablica_ksiazki.licencja=tablica_ksiazki_strona.licencja; tablica_ksiazki.nazwa_bazowego_spisu=tablica_ksiazki_strona.nazwa_bazowego_spisu; tablica_ksiazki.tab_inne_spisy=tablica_ksiazki_strona.tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=tablica_ksiazki_strona.dodatkowe_strony_woluminu; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=tablica_ksiazki_strona.adres_woluminu_bazowego_spisu_rzeczy; tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,}; return 1; end; end; end end; end,function(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis) ---- if((nazwa_przestrzeni==nazwa_przestrzeni_ref_spis)and(nazwa_przestrzeni_ksiazki==nazwa_przestrzeni_ksiazki_ref_spis)and(nazwa_ksiazki==nazwa_ksiazki_ref_spis)and(nazwa_artykulu==nazwa_artykulu_ref_spis))then tekst_rozwiniety_calego_artykulu_ref=tekst_rozwiniety_calego_artykulu_ref_spis; local parametry_modul=require("Module:Parametry"); tablica_analizy_obiektow_strony_dany_modul_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_analizy_obiektow_strony_dany_modul_ref_spis); tablica_danych_parametrow_szablonu_strony_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_danych_parametrow_szablonu_strony_ref_spis); end; ---- end); local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres) tablica_ksiazki.spis=tabela_artykulow; if(czy_artykul_korzystany)then tablica_ksiazki.licencja=tabela_licencji_spisu_tresci; end; tablica_ksiazki.nazwa_bazowego_spisu=nazwa_glownego_spisu; tablica_ksiazki.tab_inne_spisy=tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=dodatkowe_artykuly; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=czy_podac_adres and adres_ksiazki_glownego_spisu_tresci or nil; end; if(tabela_artykulow==0)then if(czy_artykul_korzystany)then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"korzystana strona główna nie istnieje"); else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"dołączone strony główne nie istnieją",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(tabela_artykulow)then if(parametry_modul.TypeTable(tabela_artykulow))then if(adres_ksiazki_glownego_spisu_tresci)then __FUNKCJA_SPISU(tablica_ksiazki,true); local tablica_ksiazki_stara=tablica_ksiazki; local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1]; local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2]; local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3]; if((kod_wyniku==1)or(kod_wyniku==2))then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then local nazwa_artykulu=artykul; StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni ,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif((kod_wyniku==3)or(kod_wyniku==4))then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; end; else __FUNKCJA_SPISU(tablica_ksiazki,false); end; elseif(tabela_artykulow~=1)then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; end; else if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"))then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=""))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych książek na ich stronach głównych",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; end; end; end; end; end; ---- local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki(); if(wynik_bledu)then return wartosc_wyniku;end; local kod_wyniku_przekierowan=kod_wyniku_bazowy; ---- --if((not tablica_przestrzeni)or(not tablica_przestrzeni_ksiazki)or(not tablica_ksiazki)or(not artykul_analizowany))then -- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); --end; ---- if((tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy)and(kod_wyniku_bazowy))--[[and((kod_wyniku_bazowy==1)or(kod_wyniku_bazowy==2))]]then ---- nazwa_przestrzeni=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[1]; nazwa_przestrzeni_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[2]; nazwa_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[3]; nazwa_artykulu=artykul_bazowy; ---- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=tablica_ksiazki.referencja_do_nowej_formy_spisu[1],tablica_ksiazki.referencja_do_nowej_formy_spisu[2],tablica_ksiazki.referencja_do_nowej_formy_spisu[3]; end; local tabela_artykulow=tablica_ksiazki.spis; if(tabela_artykulow)then local nazwa_glownego_spisu=tablica_ksiazki.nazwa_bazowego_spisu; local tab_inne_spisy=tablica_ksiazki.tab_inne_spisy; local dodatkowe_artykuly=tablica_ksiazki.dodatkowe_strony_woluminu local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,false); if(kod_wyniku)then nazwa_artykulu=artykul; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; kod_wyniku_przekierowan=kod_wyniku_przekierowan or kod_wyniku; end; local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local PrzekierownieAwaryjne=function() if(not kod_wyniku_przekierowan)then --local artykul2,kod_wyniku2=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu); if(strona)then if(strona~=nazwa_modulu)then ---- local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazwa); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif(wartosc_wyniku==0)then if(tabela_artykul)then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; else return wartosc_wyniku; end; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); nazwa_modulu=strona; else return 0; end; end; end; end; local wynik=PrzekierownieAwaryjne(); if(czy_artykul_korzystany)then self.nazwa_modulu_biezaca=nazwa_modulu; end; if(wynik)then return wynik;end; ---- if(czy_artykul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu=nazwa_przestrzeni_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=nazwa_artykulu; end; end; local nazwa_modulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu) or nazwa_modulu; -- przydzielanie tablicy if(czy_artykul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tablica_zmiennych)then tablica_zmiennych={};end; if(not tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)then tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local CzyLink=element_w_tablicy_obiekt.CzyLink; local CzyNum=element_w_tablicy_obiekt.CzyNum; local wartosc=element_w_tablicy_obiekt[1]; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum,}; if(czy_artykul_korzystany)then tablica_zmiennych.linkobiekt[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum;};end; end; local function StronaZbiorcza() if(czy_artykul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; local wynik=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,tablica_ksiazki.spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); artykul_analizowany.strona_zbiorcza=(wynik and "tak" or ""); return wynik; end; return nil; end; local strona_zbiorcza=StronaZbiorcza(); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); ---- local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; if((not tekst_rozwiniety_calego_artykulu_ref)or(not tablica_analizy_obiektow_strony_dany_modul_ref)or(not tablica_danych_parametrow_szablonu_strony_ref))then tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))and true or nil), nil) else tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=tekst_rozwiniety_calego_artykulu_ref,tablica_analizy_obiektow_strony_dany_modul_ref,tablica_danych_parametrow_szablonu_strony_ref; end; ---- if(not czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; if(czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); if((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))then local aktualna_nazwa_modulu=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwa_modulu_aktualna_czy_biezaca or nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu); local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(self,aktualna_nazwa_modulu); if(tekst)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,aktualna_nazwa_modulu); local tablica_danych_parametrow_szablonu_strony={}; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,aktualna_nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return true; elseif(stronicowyparser_obiekty_modul.strona_start[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return true; end; end); if(wynik)then break;end; end; end; end; end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; ---- local tablica_obiekty=stronicowyparser_obiekty_modul.obiekty; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local format_elementowy_referencji_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_referencji_obiektowy; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; local szablony_wykorzystywane_przez_strony_zbiorcze=stronicowyparser_obiekty_modul.szablony_wykorzystywane_przez_strony_zbiorcze; local format_elementowy_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_obiektowy; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; ---- local strona_start=stronicowyparser_obiekty_modul.strona_start; local strona_start_ze_spisem_rzeczy_strony=stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony; local strona_start_inne=stronicowyparser_obiekty_modul.strona_start_inne; local szablony_strony_zbiorczej=stronicowyparser_obiekty_modul.strona_zbiorcza; ---- local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe; local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe; local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu; local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego; ---- local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tabela_elementow_strony_kodow={}; -- for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) if(czy_artykul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(strona_start[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif(strona_start_inne[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_prestreni_nazw))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_przestrzeni))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; end; end; local plik=mw.ustring.match(nazwa_szablonu_wywolania,"^:"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=(nazwa_szablonu_wywolania=="Wypowiedzenie"); local czy_linkobiekt; local czy_link;local czy_pobierz; local czy_wypowiedzenie_z_parametrami; local czy_linkobiekt_z_parametrami; if(czy_wypowiedzenie)then czy_linkobiekt=false; czy_link=false; czy_pobierz=false; czy_wypowiedzenie_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["rodzaj"]); else czy_linkobiekt=(nazwa_szablonu_wywolania=="LinkObiekt"); if(czy_linkobiekt)then czy_link=true; czy_pobierz=false; czy_linkobiekt_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["typ"]); else czy_link=mw.ustring.match(nazwa_szablonu_wywolania,"^Link"); czy_pobierz=(not czy_link) and mw.ustring.match(nazwa_szablonu_wywolania,"^Pobierz") or nil; end; end; if((not czy_link)and(not czy_pobierz))then local wartosc_elementu;local numer_uchwytu; if(not czy_wypowiedzenie_z_parametrami) then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; else local rodzaj=tabela_parametrow_szablonu["rodzaj"]; if(rodzaj)then wartosc_elementu=format_elementowy_obiektowy[rodzaj] and rodzaj or nil; if(wartosc_elementu)then numer_uchwytu=tablica_obiekty[5]; end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; elseif(czy_artykul_korzystany)then if(czy_link)then local wartosc_elementu; if(not czy_linkobiekt_z_parametrami)then wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; else local typ=tabela_parametrow_szablonu["typ"]; if(typ)then typ=format_elementowy_referencji_obiektowy[typ] and typ or nil; if(typ)then wartosc_elementu=mw.getContentLanguage():ucfirst(typ); end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; end; end; elseif(czy_pobierz)then local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,true); return; end; end; end; if(czy_wypowiedzenie)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artykul_korzystany,tablica_obiekty[5],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,lista_dwuelementowa,kod); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); if(lista_dwuelementowa)then local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); local tekst=stronicowyparser_szablonytekstu_modul.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu); local bez_preprocess=stronicowyparser_szablonytekstu_modul.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu); local czy_bez_preprocess=parametry_modul.CzyTak(bez_preprocess); if(tekst)then local czy_szablon_wszystko=false; tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul, function(szablon,obiekt,kod) if(czy_bez_preprocess)then return nil;end; if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if( (tab_szablony[nazwa_szablonu]) or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu]) or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu]) or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu]) )then if(not czy_artykul_korzystany)then tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")) if(self)then local czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz"); if(czy_link_lub_pobierz)then p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu); end; end; end; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end; return nil; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- instrukcje warunkowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- wywołania ramek Lua w Scribunto return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- tagi szablonowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end); czy_szablon_wszystko=czy_szablon_wszystko or true; if(wynik)then return wynik;end; elseif(obiekt=="ZMIENNA")then czy_szablon_wszystko=czy_szablon_wszystko or true; local zawartosc=mw.ustring.match(szablon,"^{{{(.*)}}}$"); if(zawartosc)then zawartosc=mw.ustring.gsub(zawartosc,"|","{{!}}"); return "{{(((}}"..zawartosc.."{{)))}}"; end; end; end); if((czy_szablon_wszystko)and(not bez_preprocess))then local frame=mw.getCurrentFrame(); tekst=frame:preprocess(tekst); end; lista_dwuelementowa[2]=tekst; end; --local __metatabelka=getmetatable(tabela_parametrow_szablonu); --if(__metatabelka)then setmetatable(tabela_parametrow_szablonu,nil);end; stronicowyparser_szablonytekstu_modul.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany); end; return; elseif(czy_artykul_korzystany)then if(czy_linkobiekt)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="LinkObiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,"Obiekt",nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else if(stronicowyparser_obiekty_modul.szablony_z_lokalnym_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return; elseif(stronicowyparser_obiekty_modul.bez_uchwytow_spis_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; elseif(stronicowyparser_obiekty_modul.szablony_spisu[nazwa_szablonu_wywolania])then local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; local czy_analiza=parametry_modul.CzyTak(tabela_parametrow_szablonu["analiza"]); local czy_dokumentacja=parametry_modul.CzyTak(tabela_parametrow_szablonu["dokumentacja"]); local czy_parser=parametry_modul.CzyTak(tabela_parametrow_szablonu["parser"]) if( ((czy_dokumentacja)and(czy_parser)) or((not czy_dokumentacja)and(czy_analiza)) )then p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); end; return; else local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=nazwa_szablonu_wywolania..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; if((stronicowyparser_obiekty_modul.szablony_kontenerowe[nazwa_szablonu_wywolania]) or(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]) )then if(szablony_wykorzystywane_przez_strony_zbiorcze[nazwa_szablonu_wywolania])then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nil,KtorySzablonMaZwracacKategorie); end; return; elseif((strona_zbiorcza)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); return; end; end; end; end; end; end; end; end; ---- local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_danych_parametrow_szablonu_strony,AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego); end; local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer); end; end; if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony=nazwy_modul["PEŁNABAZOWANAZWASTRONY"](nazwa_modulu); end; IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu); ---- local tablica_danych_nazwy_artykulu=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu] or {}; tablica_danych_nazwy_artykulu.uchwyty_i_numeracje=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; ---- local wiki_modul=require("Module:Wiki"); tablica_danych_nazwy_artykulu.link_wikidane={wiki_modul.KodyKlasStronyNaDanejWiki{["strona"]=nazwa_modulu_aktualna_czy_biezaca,["nagłówek"]=true,["aktywny"]=true,},}; if(not czy_artykul_korzystany)then if(pozawoluminowe_strony)then if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then local nazwa_modulu_korzystana_bazowa=self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony; local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne"); local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnika"](nazwa_modulu_korzystana_bazowa,nazwa_modulu); tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,pozawoluminowe_strony,czy_artykul_korzystany,}; end; else local niekorzystany_wolumin=(not korzystany_wolumin); if(niekorzystany_wolumin)then if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne"); local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnikaDołączonejKsiążki"](nazwa_ksiazki); tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,niekorzystany_wolumin,czy_artykul_korzystany,}; end; end; end; end; ---- if(czy_artykul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); end; end; local strona; if(czy_artykul_korzystany)then strona="";else strona=nazwa_modulu;end; ---- if(czy_artykul_korzystany)then local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); stronicowyparser_szablonytekstu_modul.UstawPobierzKorzystanie(tablica_zmiennych); tekst_rozwiniety_calego_artykulu=stronicowyparser_szablonytekstu_modul.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu) or tekst_rozwiniety_calego_artykulu; end; ---- local function SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca) return function() if(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)) or((not czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)))then ---- local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil; ---- tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false); ---- local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"powtórka nagłówek w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"nagłowek w tekście rozdziału w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu() return stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); end; local nazwa_naglowka=stronicowyparser_obiekty_modul.nazwa_szablonu_wprowadzenia_tekstu; local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron"); local tablica_naglowka_obiekty=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_naglowka]; tablica_naglowka_obiekty.uchwyty_bez_numeracji={}; local toc=stronicowyparser_glownafunkcjazbieraniadanych_modul.SpisRzeczyWedlePodanegoTekstu(self,tekst_rozwiniety_calego_artykulu,strona, czy_artykul_korzystany,nil,tablica_naglowka_obiekty.uchwyty_bez_numeracji, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,{KtorySzablonMaZwracacKategorieNaglowek,KtorySzablonMaZwracacKategorieTekst,CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu,},nil,tabela_elementow_strony_kodow); tablica_danych_nazwy_artykulu.TOC=toc; return true; end; end; end; local czy_spis_function=SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca); local wynik=czy_spis_function(); if(not czy_artykul_korzystany)then if(not wynik)then tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=czy_spis_function; end; end; StronaSubstFunkcja(tablica_danych_nazwy_artykulu,tablica_ksiazki.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.link_wikidane=tablica_danych_nazwy_artykulu.link_wikidane; self.tabela_listy_danych_analizy_ksiazki.prefiks_numeru_woluminowego_strony=tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw[nazwa_przestrzeni_ksiazki]; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; --self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron=tablica_zmiennych; end; if(not czy_artykul_korzystany)then tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=tablica_zmiennych; if(not self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista)then self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista={};end; table.insert(self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista,tablica_danych_nazwy_artykulu); else local dane_zebrane_ze_stron_lista=self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista; if(dane_zebrane_ze_stron_lista)then for _,tablica_danych_nazwy_artykulu in ipairs(dane_zebrane_ze_stron_lista)do tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=nil; tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=nil; end; end; tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane=nil; end; return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true; end; return p; fuifsxjj2kzx0ervealjvu5x2ig1pen 555455 555452 2026-09-10T13:17:34Z Persino 2851 555455 Scribunto text/plain local p={}; function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod) if(lista_dwuelementowa)then local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then tabela_elementow_strony_kodow[nazwa_obiektu]={}; tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(not uchwyty_bez_numeracji)then tab_obiekt.uchwyty_bez_numeracji={}; uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; end; uchwyty_bez_numeracji[kod]=lista_dwuelementowa; end; end; function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod) local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then return nil;end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(uchwyty_bez_numeracji)then return uchwyty_bez_numeracji[kod]; end; end; function p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); if(uchwyt_obiektu~="")then KtorySzablonMaZwracacKategorie(uchwyt_obiektu); local lista_dwuelementowa={}; lista_dwuelementowa[1]=uchwyt_obiektu; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_obiektu=true; end; if(tab_numer)then tab_numer[nazwa_obiektu]=tab_numer[nazwa_obiektu]+1; local numer=tab_numer[nazwa_obiektu]; table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],numer,lista_dwuelementowa); else table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; return lista_dwuelementowa; end; end; function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji]; if(uchwyt_obiektu)then local lista_dwuelementowa=p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return lista_dwuelementowa; end; end; function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(tablica_przestrzeni_wszystkiego)then local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni]; if(tabela_przestrzeni_ksiazek)then local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki] if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then --czy_lista_niepusta=true; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); for _,tab_value in ipairs(tab_ksiazki.spis)do if(tab_value[2])then for _,artykul_w_bazie_element in ipairs(tab_value[2])do local artykul_w_bazie=artykul_w_bazie_element[1]; local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie); artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie; local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie); if(artykul_bez_naglowka_w_bazie==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu~=nazwa_przestrzeni_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu~=nazwa_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=nazwa_artykulu))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych stron",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"); end; end; end; end; end; function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and (nazwa_ksiazki=="") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and (nazwa_artykulu=="") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and (uchwyt_obiektu=="") or nil; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1); end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2); end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3); end; end; end; function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[bezuchwytowe and 1 or 2]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[bezuchwytowe and 2 or 3]; local parametry_modul=require("Module:Parametry"); local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; end; local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul.DecodeHtml(pelna_nazwa_ksiazki,true); local techniczne_modul=require("Module:Techniczne"); pelna_nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_ksiazki,[2]=nazwa_modulu_aktualna_czy_biezaca,}; ---- local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw))); --pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); end; return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; end; function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; if(not czy_inna_wartosc_tekst)then nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca,true); else nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=tab_nazwy[1],tab_nazwy[2],tab_nazwy[3],tab_nazwy[4]; end; --local ksiazkowe_modul=require("Module:Książkowe"); --pelna_nazwa_ksiazki=pelna_nazwa_ksiazki or ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](); --nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](); if((nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki)or(nazwa_artykulu))then local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw); local nazwa_ksiazki=nazwa_ksiazki or ksiazkowe_modul["NazwaTytułuKsiążki"](nil,tabela_nazw); local nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false); end; end; function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie) local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end; local parametry_modul=require("Module:Parametry"); if((nazwa_jednostki) and (nazwa_jednostki==""))then return;end; local szablonowe_modul=require("Module:Szablonowe"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu())) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu())) )then return;end; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local tabela_nazw_art={}; local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art); if(nazwa_przestrzeni)then nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true); end; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local techniczne_modul=require("Module:Techniczne"); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,}; --strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona); local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw))); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej); end; function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); local nazwy_modul=require("Module:Nazwy"); local czy_inna_wartosc_tekst=true; if((nazwa_artykulu)and(nazwa_ksiazki))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwy_modul["NazwaModułu"]("",nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((nazwa_artykulu)and(not nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or (ksiazkowe_modul["NazwaKsiążki"]()..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((not nazwa_artykulu)and(nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ksiazkowe_modul["NazwaKsiążki"](); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); else p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); end; end; function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE) local pudelko_modul=require("Module:Pudełko"); if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni)))or(nazwa_przestrzeni==""))) and((nazwa_przestrzeni_ksiazki)and(((nazwa_przestrzeni_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni_ksiazki)))or(nazwa_przestrzeni_ksiazki==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_ksiazki))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_artykulu)))or(nazwa_artykulu==""))) )then if(__FUNKCJA_SPRAWDZANIE)then __FUNKCJA_SPRAWDZANIE(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"); end; else if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"); end; end; end; end; function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) local linkobiekttab=tablica_zmiennych.linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; end; function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz) p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,function() local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tablica_zmiennych2={}; tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0,tablica_zmiennych2,czy_inna=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych2); if(tabela_listy_danych_analizy_ksiazki0)then if((not czy_inna)or(not tablica_zmiennych2))then return;end; local stronicowyparser_szablony_tekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); local JuzPoliczone=function() if(czy_pobierz)then stronicowyparser_szablony_tekstu_modul.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,false); end; if(not tablica_zmiennych2.dane_juz_policzone)then tablica_zmiennych2.dane_juz_policzone={};end; local tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; if(not tab_nazwa_obiektu)then tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]={}; tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; end; local tab_uchwyt=tab_nazwa_obiektu[uchwyt_obiektu]; if(tab_uchwyt)then return true; end; tab_nazwa_obiektu[uchwyt_obiektu]=true; return false; end; if(not parametry_modul.CzyTak(tabela_listy_danych_analizy_ksiazki0))then local czy_policzone=JuzPoliczone(); if(czy_policzone)then return; end; else JuzPoliczone(); end; stronicowyparser_szablony_tekstu_modul.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2); p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local CzyLink=czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2.CzyLink; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in ipairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu); end; p.PusteParametryReferencji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"); end; end; else p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; end); end; function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca); ---- local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(uchwyt_obiektu))then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); end; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(parametry_modul.CzyTak(uchwyt_obiektu))then nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; elseif(nazwa_ksiazki=="")then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu) or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu) or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz); else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu); end; KtorySzablonMaZwracacKategorie(uchwyt_obiektu); end; function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej) local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end; local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki]; if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki]; if(not tablica_ksiazki.lista_podstron_woluminu)then tablica_ksiazki.lista_podstron_woluminu={};end; if(nazwa_artykulu)then if(not tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu])then tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]; return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany; else return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki; end; end; local korzystany_wolumin=false; local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not czy_artykul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki))then korzystany_wolumin=true; if(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu)then return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; else korzystany_wolumin=true; end; if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_przestrzeni_ksiazki=tabela_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_przestrzeni_ksiazki)then local tabela_ksiazka=tabela_przestrzeni_ksiazki[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_podstron_woluminu; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local dane_zebrane_ze_stron=tabela_artykul.dane_zebrane_ze_stron; ---- if(not czy_artykul_korzystany)then if(tabela_artykul.TOCSPIS_FUNCTION)then local wynik=tabela_artykul.TOCSPIS_FUNCTION(); if(wynik)then tabela_artykul.TOCSPIS_FUNCTION=nil; end; end; end; return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true; end; end; end; end; end; else return nil; end; else return nil; end; return true; end; local nazwy_modul=require("Module:Nazwy"); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,czy_inna=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local function StronaSubstFunkcja(tabela_artykul,spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((czy_szablon_pudelkowy_strony_zbiorczej)and(not czy_artykul_korzystany)and(tabela_artykul)and(not tabela_artykul.strona_zbiorcza))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end; tabela_artykul.strona_zbiorcza=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; end; if(not wartosc_wyniku)then return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; elseif(wartosc_wyniku==0)then if(tabela_artykul)then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; else return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; end; end; ---- local pozawoluminowe_strony; ---- local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) )then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); pozawoluminowe_strony=true; end; ---- local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local parametry_modul=require("Module:Parametry"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); ---- local tekst_rozwiniety_calego_artykulu_ref=nil; local tablica_analizy_obiektow_strony_dany_modul_ref=nil; local tablica_danych_parametrow_szablonu_strony_ref=nil; ---- local function InneInformacjePrzebneDoAnalizowanejKsiazki() if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"]="tak";end; end; local czy_ksiazka_istnieje_w_tablicy=((tablica_ksiazki)and(tablica_ksiazki.czy_spis_analizowano))and true or false; if(not czy_ksiazka_istnieje_w_tablicy)then tablica_ksiazki.czy_spis_analizowano=true; local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści"); local nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp; local tabela_artykulow,tabela_licencji_spisu_tresci,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci=stronicowyparser_spistresci_modul.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,function(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona) local tablica_przestrzeni_strona=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni_strona]; if(tablica_przestrzeni_strona)then local tablica_przestrzeni_ksiazki_strona=tablica_przestrzeni_strona[nazwa_przestrzeni_ksiazki_strona]; if(tablica_przestrzeni_ksiazki_strona)then local tablica_ksiazki_strona=tablica_przestrzeni_ksiazki_strona[nazwa_ksiazki_strona]; if(tablica_ksiazki_strona)then if(tablica_ksiazki_strona.spis)then nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp=nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona; tablica_ksiazki.spis=tablica_ksiazki_strona.spis; tablica_ksiazki.licencja=tablica_ksiazki_strona.licencja; tablica_ksiazki.nazwa_bazowego_spisu=tablica_ksiazki_strona.nazwa_bazowego_spisu; tablica_ksiazki.tab_inne_spisy=tablica_ksiazki_strona.tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=tablica_ksiazki_strona.dodatkowe_strony_woluminu; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=tablica_ksiazki_strona.adres_woluminu_bazowego_spisu_rzeczy; tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,}; return 1; end; end; end end; end,function(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis) ---- if((nazwa_przestrzeni==nazwa_przestrzeni_ref_spis)and(nazwa_przestrzeni_ksiazki==nazwa_przestrzeni_ksiazki_ref_spis)and(nazwa_ksiazki==nazwa_ksiazki_ref_spis)and(nazwa_artykulu==nazwa_artykulu_ref_spis))then tekst_rozwiniety_calego_artykulu_ref=tekst_rozwiniety_calego_artykulu_ref_spis; local parametry_modul=require("Module:Parametry"); tablica_analizy_obiektow_strony_dany_modul_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_analizy_obiektow_strony_dany_modul_ref_spis); tablica_danych_parametrow_szablonu_strony_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_danych_parametrow_szablonu_strony_ref_spis); end; ---- end); local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres) tablica_ksiazki.spis=tabela_artykulow; if(czy_artykul_korzystany)then tablica_ksiazki.licencja=tabela_licencji_spisu_tresci; end; tablica_ksiazki.nazwa_bazowego_spisu=nazwa_glownego_spisu; tablica_ksiazki.tab_inne_spisy=tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=dodatkowe_artykuly; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=czy_podac_adres and adres_ksiazki_glownego_spisu_tresci or nil; end; if(tabela_artykulow==0)then if(czy_artykul_korzystany)then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"korzystana strona główna nie istnieje"); else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"dołączone strony główne nie istnieją",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(tabela_artykulow)then if(parametry_modul.TypeTable(tabela_artykulow))then if(adres_ksiazki_glownego_spisu_tresci)then __FUNKCJA_SPISU(tablica_ksiazki,true); local tablica_ksiazki_stara=tablica_ksiazki; local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1]; local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2]; local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3]; if((kod_wyniku==1)or(kod_wyniku==2))then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then local nazwa_artykulu=artykul; StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni ,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif((kod_wyniku==3)or(kod_wyniku==4))then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; end; else __FUNKCJA_SPISU(tablica_ksiazki,false); end; elseif(tabela_artykulow~=1)then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; end; else if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"))then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=""))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych książek na ich stronach głównych",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; end; end; end; end; end; ---- local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki(); if(wynik_bledu)then return wartosc_wyniku;end; local kod_wyniku_przekierowan=kod_wyniku_bazowy; ---- --if((not tablica_przestrzeni)or(not tablica_przestrzeni_ksiazki)or(not tablica_ksiazki)or(not artykul_analizowany))then -- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); --end; ---- if((tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy)and(kod_wyniku_bazowy))--[[and((kod_wyniku_bazowy==1)or(kod_wyniku_bazowy==2))]]then ---- nazwa_przestrzeni=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[1]; nazwa_przestrzeni_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[2]; nazwa_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[3]; nazwa_artykulu=artykul_bazowy; ---- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=tablica_ksiazki.referencja_do_nowej_formy_spisu[1],tablica_ksiazki.referencja_do_nowej_formy_spisu[2],tablica_ksiazki.referencja_do_nowej_formy_spisu[3]; end; local tabela_artykulow=tablica_ksiazki.spis; if(tabela_artykulow)then local nazwa_glownego_spisu=tablica_ksiazki.nazwa_bazowego_spisu; local tab_inne_spisy=tablica_ksiazki.tab_inne_spisy; local dodatkowe_artykuly=tablica_ksiazki.dodatkowe_strony_woluminu local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,false); if(kod_wyniku)then nazwa_artykulu=artykul; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; kod_wyniku_przekierowan=kod_wyniku_przekierowan or kod_wyniku; end; local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local PrzekierownieAwaryjne=function() if(not kod_wyniku_przekierowan)then --local artykul2,kod_wyniku2=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu); if(strona)then if(strona~=nazwa_modulu)then ---- local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazwa); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif(wartosc_wyniku==0)then if(tabela_artykul)then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; else return wartosc_wyniku; end; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); nazwa_modulu=strona; else return 0; end; end; end; end; local wynik=PrzekierownieAwaryjne(); if(czy_artykul_korzystany)then self.nazwa_modulu_biezaca=nazwa_modulu; end; if(wynik)then return wynik;end; ---- if(czy_artykul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu=nazwa_przestrzeni_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=nazwa_artykulu; end; end; local nazwa_modulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu) or nazwa_modulu; -- przydzielanie tablicy if(czy_artykul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tablica_zmiennych)then tablica_zmiennych={};end; if(not tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)then tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local CzyLink=element_w_tablicy_obiekt.CzyLink; local CzyNum=element_w_tablicy_obiekt.CzyNum; local wartosc=element_w_tablicy_obiekt[1]; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum,}; if(czy_artykul_korzystany)then tablica_zmiennych.linkobiekt[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum;};end; end; local function StronaZbiorcza() if(czy_artykul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; local wynik=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,tablica_ksiazki.spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); artykul_analizowany.strona_zbiorcza=(wynik and "tak" or ""); return wynik; end; return nil; end; local strona_zbiorcza=StronaZbiorcza(); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); ---- local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; if((not tekst_rozwiniety_calego_artykulu_ref)or(not tablica_analizy_obiektow_strony_dany_modul_ref)or(not tablica_danych_parametrow_szablonu_strony_ref))then tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))and true or nil), nil) else tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=tekst_rozwiniety_calego_artykulu_ref,tablica_analizy_obiektow_strony_dany_modul_ref,tablica_danych_parametrow_szablonu_strony_ref; end; ---- if(not czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; if(czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); if((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))then local aktualna_nazwa_modulu=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwa_modulu_aktualna_czy_biezaca or nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu); local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(self,aktualna_nazwa_modulu); if(tekst)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,aktualna_nazwa_modulu); local tablica_danych_parametrow_szablonu_strony={}; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,aktualna_nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return true; elseif(stronicowyparser_obiekty_modul.strona_start[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return true; end; end); if(wynik)then break;end; end; end; end; end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; ---- local tablica_obiekty=stronicowyparser_obiekty_modul.obiekty; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local format_elementowy_referencji_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_referencji_obiektowy; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; local szablony_wykorzystywane_przez_strony_zbiorcze=stronicowyparser_obiekty_modul.szablony_wykorzystywane_przez_strony_zbiorcze; local format_elementowy_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_obiektowy; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; ---- local strona_start=stronicowyparser_obiekty_modul.strona_start; local strona_start_ze_spisem_rzeczy_strony=stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony; local strona_start_inne=stronicowyparser_obiekty_modul.strona_start_inne; local szablony_strony_zbiorczej=stronicowyparser_obiekty_modul.strona_zbiorcza; ---- local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe; local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe; local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu; local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego; ---- local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tabela_elementow_strony_kodow={}; -- for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) if(czy_artykul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(strona_start[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif(strona_start_inne[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_prestreni_nazw))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_przestrzeni))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; end; end; local plik=mw.ustring.match(nazwa_szablonu_wywolania,"^:"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=(nazwa_szablonu_wywolania=="Wypowiedzenie"); local czy_linkobiekt; local czy_link;local czy_pobierz; local czy_wypowiedzenie_z_parametrami; local czy_linkobiekt_z_parametrami; if(czy_wypowiedzenie)then czy_linkobiekt=false; czy_link=false; czy_pobierz=false; czy_wypowiedzenie_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["rodzaj"]); else czy_linkobiekt=(nazwa_szablonu_wywolania=="LinkObiekt"); if(czy_linkobiekt)then czy_link=true; czy_pobierz=false; czy_linkobiekt_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["typ"]); else czy_link=mw.ustring.match(nazwa_szablonu_wywolania,"^Link"); czy_pobierz=(not czy_link) and mw.ustring.match(nazwa_szablonu_wywolania,"^Pobierz") or nil; end; end; if((not czy_link)and(not czy_pobierz))then local wartosc_elementu;local numer_uchwytu; if(not czy_wypowiedzenie_z_parametrami) then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; else local rodzaj=tabela_parametrow_szablonu["rodzaj"]; if(rodzaj)then wartosc_elementu=format_elementowy_obiektowy[rodzaj] and rodzaj or nil; if(wartosc_elementu)then numer_uchwytu=tablica_obiekty[5]; end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; elseif(czy_artykul_korzystany)then if(czy_link)then local wartosc_elementu; if(not czy_linkobiekt_z_parametrami)then wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; else local typ=tabela_parametrow_szablonu["typ"]; if(typ)then typ=format_elementowy_referencji_obiektowy[typ] and typ or nil; if(typ)then wartosc_elementu=mw.getContentLanguage():ucfirst(typ); end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; end; end; elseif(czy_pobierz)then local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,true); return; end; end; end; if(czy_wypowiedzenie)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artykul_korzystany,tablica_obiekty[5],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,lista_dwuelementowa,kod); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); if(lista_dwuelementowa)then local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); local tekst=stronicowyparser_szablonytekstu_modul.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu); local bez_preprocess=stronicowyparser_szablonytekstu_modul.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu); local czy_bez_preprocess=parametry_modul.CzyTak(bez_preprocess); if(tekst)then local czy_szablon_wszystko=false; tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul, function(szablon,obiekt,kod) if(czy_bez_preprocess)then return nil;end; if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if( (tab_szablony[nazwa_szablonu]) or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu]) or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu]) or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu]) )then if(not czy_artykul_korzystany)then tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")) if(self)then local czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz"); if(czy_link_lub_pobierz)then p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu); end; end; end; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end; return nil; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- instrukcje warunkowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- wywołania ramek Lua w Scribunto return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- tagi szablonowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end); czy_szablon_wszystko=czy_szablon_wszystko or true; if(wynik)then return wynik;end; elseif(obiekt=="ZMIENNA")then czy_szablon_wszystko=czy_szablon_wszystko or true; local zawartosc=mw.ustring.match(szablon,"^{{{(.*)}}}$"); if(zawartosc)then zawartosc=mw.ustring.gsub(zawartosc,"|","{{!}}"); return "{{(((}}"..zawartosc.."{{)))}}"; end; end; end); if((czy_szablon_wszystko)and(not bez_preprocess))then local frame=mw.getCurrentFrame(); tekst=frame:preprocess(tekst); end; lista_dwuelementowa[2]=tekst; end; --local __metatabelka=getmetatable(tabela_parametrow_szablonu); --if(__metatabelka)then setmetatable(tabela_parametrow_szablonu,nil);end; stronicowyparser_szablonytekstu_modul.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany); end; return; elseif(czy_artykul_korzystany)then if(czy_linkobiekt)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="LinkObiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,"Obiekt",nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else if(stronicowyparser_obiekty_modul.szablony_z_lokalnym_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return; elseif(stronicowyparser_obiekty_modul.bez_uchwytow_spis_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; elseif(stronicowyparser_obiekty_modul.szablony_spisu[nazwa_szablonu_wywolania])then local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; local czy_analiza=parametry_modul.CzyTak(tabela_parametrow_szablonu["analiza"]); local czy_dokumentacja=parametry_modul.CzyTak(tabela_parametrow_szablonu["dokumentacja"]); local czy_parser=parametry_modul.CzyTak(tabela_parametrow_szablonu["parser"]) if( (czy_parser) or((not czy_dokumentacja)and(czy_analiza)) )then p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); end; return; else local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=nazwa_szablonu_wywolania..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; if((stronicowyparser_obiekty_modul.szablony_kontenerowe[nazwa_szablonu_wywolania]) or(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]) )then if(szablony_wykorzystywane_przez_strony_zbiorcze[nazwa_szablonu_wywolania])then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nil,KtorySzablonMaZwracacKategorie); end; return; elseif((strona_zbiorcza)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); return; end; end; end; end; end; end; end; end; ---- local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_danych_parametrow_szablonu_strony,AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego); end; local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer); end; end; if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony=nazwy_modul["PEŁNABAZOWANAZWASTRONY"](nazwa_modulu); end; IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu); ---- local tablica_danych_nazwy_artykulu=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu] or {}; tablica_danych_nazwy_artykulu.uchwyty_i_numeracje=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; ---- local wiki_modul=require("Module:Wiki"); tablica_danych_nazwy_artykulu.link_wikidane={wiki_modul.KodyKlasStronyNaDanejWiki{["strona"]=nazwa_modulu_aktualna_czy_biezaca,["nagłówek"]=true,["aktywny"]=true,},}; if(not czy_artykul_korzystany)then if(pozawoluminowe_strony)then if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then local nazwa_modulu_korzystana_bazowa=self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony; local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne"); local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnika"](nazwa_modulu_korzystana_bazowa,nazwa_modulu); tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,pozawoluminowe_strony,czy_artykul_korzystany,}; end; else local niekorzystany_wolumin=(not korzystany_wolumin); if(niekorzystany_wolumin)then if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne"); local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnikaDołączonejKsiążki"](nazwa_ksiazki); tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,niekorzystany_wolumin,czy_artykul_korzystany,}; end; end; end; end; ---- if(czy_artykul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); end; end; local strona; if(czy_artykul_korzystany)then strona="";else strona=nazwa_modulu;end; ---- if(czy_artykul_korzystany)then local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); stronicowyparser_szablonytekstu_modul.UstawPobierzKorzystanie(tablica_zmiennych); tekst_rozwiniety_calego_artykulu=stronicowyparser_szablonytekstu_modul.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu) or tekst_rozwiniety_calego_artykulu; end; ---- local function SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca) return function() if(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)) or((not czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)))then ---- local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil; ---- tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false); ---- local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"powtórka nagłówek w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"nagłowek w tekście rozdziału w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu() return stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); end; local nazwa_naglowka=stronicowyparser_obiekty_modul.nazwa_szablonu_wprowadzenia_tekstu; local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron"); local tablica_naglowka_obiekty=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_naglowka]; tablica_naglowka_obiekty.uchwyty_bez_numeracji={}; local toc=stronicowyparser_glownafunkcjazbieraniadanych_modul.SpisRzeczyWedlePodanegoTekstu(self,tekst_rozwiniety_calego_artykulu,strona, czy_artykul_korzystany,nil,tablica_naglowka_obiekty.uchwyty_bez_numeracji, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,{KtorySzablonMaZwracacKategorieNaglowek,KtorySzablonMaZwracacKategorieTekst,CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu,},nil,tabela_elementow_strony_kodow); tablica_danych_nazwy_artykulu.TOC=toc; return true; end; end; end; local czy_spis_function=SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca); local wynik=czy_spis_function(); if(not czy_artykul_korzystany)then if(not wynik)then tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=czy_spis_function; end; end; StronaSubstFunkcja(tablica_danych_nazwy_artykulu,tablica_ksiazki.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.link_wikidane=tablica_danych_nazwy_artykulu.link_wikidane; self.tabela_listy_danych_analizy_ksiazki.prefiks_numeru_woluminowego_strony=tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw[nazwa_przestrzeni_ksiazki]; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; --self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron=tablica_zmiennych; end; if(not czy_artykul_korzystany)then tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=tablica_zmiennych; if(not self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista)then self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista={};end; table.insert(self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista,tablica_danych_nazwy_artykulu); else local dane_zebrane_ze_stron_lista=self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista; if(dane_zebrane_ze_stron_lista)then for _,tablica_danych_nazwy_artykulu in ipairs(dane_zebrane_ze_stron_lista)do tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=nil; tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=nil; end; end; tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane=nil; end; return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true; end; return p; 5ojhehbyna03fpan5ds5mig3jz4ksks 555457 555455 2026-09-10T13:30:22Z Persino 2851 555457 Scribunto text/plain local p={}; function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod) if(lista_dwuelementowa)then local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then tabela_elementow_strony_kodow[nazwa_obiektu]={}; tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(not uchwyty_bez_numeracji)then tab_obiekt.uchwyty_bez_numeracji={}; uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; end; uchwyty_bez_numeracji[kod]=lista_dwuelementowa; end; end; function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod) local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then return nil;end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(uchwyty_bez_numeracji)then return uchwyty_bez_numeracji[kod]; end; end; function p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); if(uchwyt_obiektu~="")then KtorySzablonMaZwracacKategorie(uchwyt_obiektu); local lista_dwuelementowa={}; lista_dwuelementowa[1]=uchwyt_obiektu; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_obiektu=true; end; if(tab_numer)then tab_numer[nazwa_obiektu]=tab_numer[nazwa_obiektu]+1; local numer=tab_numer[nazwa_obiektu]; table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],numer,lista_dwuelementowa); else table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; return lista_dwuelementowa; end; end; function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji]; if(uchwyt_obiektu)then local lista_dwuelementowa=p.RozpatrywanieElementuUchwytuNumeracji(self,uchwyt_obiektu,tab_numer,tablica_zmiennych, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return lista_dwuelementowa; end; end; function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(tablica_przestrzeni_wszystkiego)then local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni]; if(tabela_przestrzeni_ksiazek)then local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki] if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then --czy_lista_niepusta=true; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); for _,tab_value in ipairs(tab_ksiazki.spis)do if(tab_value[2])then for _,artykul_w_bazie_element in ipairs(tab_value[2])do local artykul_w_bazie=artykul_w_bazie_element[1]; local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie); artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie; local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie); if(artykul_bez_naglowka_w_bazie==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu~=nazwa_przestrzeni_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu~=nazwa_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=nazwa_artykulu))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych stron",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"); end; end; end; end; end; function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and (nazwa_ksiazki=="") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and (nazwa_artykulu=="") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and (uchwyt_obiektu=="") or nil; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1); end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2); end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3); end; end; end; function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca,bezuchwytowe) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[bezuchwytowe and 1 or 2]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[bezuchwytowe and 2 or 3]; local parametry_modul=require("Module:Parametry"); local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; end; local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul.DecodeHtml(pelna_nazwa_ksiazki,true); local techniczne_modul=require("Module:Techniczne"); pelna_nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_ksiazki,[2]=nazwa_modulu_aktualna_czy_biezaca,}; ---- local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw))); --pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); end; return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; end; function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst,tab_nazwy) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; if(not czy_inna_wartosc_tekst)then nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca,true); else nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=tab_nazwy[1],tab_nazwy[2],tab_nazwy[3],tab_nazwy[4]; end; --local ksiazkowe_modul=require("Module:Książkowe"); --pelna_nazwa_ksiazki=pelna_nazwa_ksiazki or ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](); --nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](); if((nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki)or(nazwa_artykulu))then local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw); local nazwa_ksiazki=nazwa_ksiazki or ksiazkowe_modul["NazwaTytułuKsiążki"](nil,tabela_nazw); local nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false); end; end; function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie) local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not nazwa_przestrzeni)and(not nazwa_jednostki))then return;end; local parametry_modul=require("Module:Parametry"); if((nazwa_jednostki) and (nazwa_jednostki==""))then return;end; local szablonowe_modul=require("Module:Szablonowe"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu())) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu())) )then return;end; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local tabela_nazw_art={}; local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art); if(nazwa_przestrzeni)then nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true); end; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local techniczne_modul=require("Module:Techniczne"); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,}; --strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona); local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw))); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej); end; function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); local nazwy_modul=require("Module:Nazwy"); local czy_inna_wartosc_tekst=true; if((nazwa_artykulu)and(nazwa_ksiazki))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwy_modul["NazwaModułu"]("",nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((nazwa_artykulu)and(not nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or (ksiazkowe_modul["NazwaKsiążki"]()..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); elseif((not nazwa_artykulu)and(nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ksiazkowe_modul["NazwaKsiążki"](); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); else p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst,{nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,}); end; end; function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA_SPRAWDZANIE) local pudelko_modul=require("Module:Pudełko"); if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni)))or(nazwa_przestrzeni==""))) and((nazwa_przestrzeni_ksiazki)and(((nazwa_przestrzeni_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni_ksiazki)))or(nazwa_przestrzeni_ksiazki==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_ksiazki))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_artykulu)))or(nazwa_artykulu==""))) )then if(__FUNKCJA_SPRAWDZANIE)then __FUNKCJA_SPRAWDZANIE(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"); end; else if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"); end; end; end; end; function p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) local linkobiekttab=tablica_zmiennych.linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; end; function p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz) p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,function() local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tablica_zmiennych2={}; tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0,tablica_zmiennych2,czy_inna=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych2); if(tabela_listy_danych_analizy_ksiazki0)then if((not czy_inna)or(not tablica_zmiennych2))then return;end; local stronicowyparser_szablony_tekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); local JuzPoliczone=function() if(czy_pobierz)then stronicowyparser_szablony_tekstu_modul.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,false); end; if(not tablica_zmiennych2.dane_juz_policzone)then tablica_zmiennych2.dane_juz_policzone={};end; local tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; if(not tab_nazwa_obiektu)then tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]={}; tab_nazwa_obiektu=tablica_zmiennych2.dane_juz_policzone[nazwa_obiektu]; end; local tab_uchwyt=tab_nazwa_obiektu[uchwyt_obiektu]; if(tab_uchwyt)then return true; end; tab_nazwa_obiektu[uchwyt_obiektu]=true; return false; end; if(not parametry_modul.CzyTak(tabela_listy_danych_analizy_ksiazki0))then local czy_policzone=JuzPoliczone(); if(czy_policzone)then return; end; else JuzPoliczone(); end; stronicowyparser_szablony_tekstu_modul.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2); p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tablica_zmiennych2.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local CzyLink=czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2.CzyLink; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in ipairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu); end; p.PusteParametryReferencji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"); end; end; else p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; end); end; function p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,czy_pobierz) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca); ---- local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(uchwyt_obiektu))then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); end; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(parametry_modul.CzyTak(uchwyt_obiektu))then nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; elseif(nazwa_ksiazki=="")then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu) or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu) or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then p.LinkowanieInnychStron(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,czy_pobierz); else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p.LinkowanieFinalizowaniePrac(self,obiekt,kod,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul,czy_pobierz) p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu); end; KtorySzablonMaZwracacKategorie(uchwyt_obiektu); end; function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej) local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end; local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki]; if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki]; if(not tablica_ksiazki.lista_podstron_woluminu)then tablica_ksiazki.lista_podstron_woluminu={};end; if(nazwa_artykulu)then if(not tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu])then tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]; return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany; else return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki; end; end; local korzystany_wolumin=false; local function __FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not czy_artykul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki))then korzystany_wolumin=true; if(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu)then return 0,nil,nil,nil,nil,nil,self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron,false; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true; end; end; else return nil; end; else korzystany_wolumin=true; end; if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_przestrzeni_ksiazki=tabela_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_przestrzeni_ksiazki)then local tabela_ksiazka=tabela_przestrzeni_ksiazki[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_podstron_woluminu; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then local dane_zebrane_ze_stron=tabela_artykul.dane_zebrane_ze_stron; ---- if(not czy_artykul_korzystany)then if(tabela_artykul.TOCSPIS_FUNCTION)then local wynik=tabela_artykul.TOCSPIS_FUNCTION(); if(wynik)then tabela_artykul.TOCSPIS_FUNCTION=nil; end; end; end; return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,true; end; end; end; end; end; else return nil; end; else return nil; end; return true; end; local nazwy_modul=require("Module:Nazwy"); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni,dane_zebrane_ze_stron,czy_inna=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local function StronaSubstFunkcja(tabela_artykul,spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((czy_szablon_pudelkowy_strony_zbiorczej)and(not czy_artykul_korzystany)and(tabela_artykul)and(not tabela_artykul.strona_zbiorcza))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end; tabela_artykul.strona_zbiorcza=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; end; if(not wartosc_wyniku)then return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; elseif(wartosc_wyniku==0)then if(tabela_artykul)then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; else return wartosc_wyniku,dane_zebrane_ze_stron,czy_inna; end; end; ---- local pozawoluminowe_strony; ---- local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((nazwa_przestrzeni~=nazwy_np_modul.Main) and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior) and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^([^/]+)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) )then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); pozawoluminowe_strony=true; end; ---- local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local parametry_modul=require("Module:Parametry"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); ---- local tekst_rozwiniety_calego_artykulu_ref=nil; local tablica_analizy_obiektow_strony_dany_modul_ref=nil; local tablica_danych_parametrow_szablonu_strony_ref=nil; ---- local function InneInformacjePrzebneDoAnalizowanejKsiazki() if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"]="tak";end; end; local czy_ksiazka_istnieje_w_tablicy=((tablica_ksiazki)and(tablica_ksiazki.czy_spis_analizowano))and true or false; if(not czy_ksiazka_istnieje_w_tablicy)then tablica_ksiazki.czy_spis_analizowano=true; local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści"); local nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp; local tabela_artykulow,tabela_licencji_spisu_tresci,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci=stronicowyparser_spistresci_modul.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,function(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona) local tablica_przestrzeni_strona=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni_strona]; if(tablica_przestrzeni_strona)then local tablica_przestrzeni_ksiazki_strona=tablica_przestrzeni_strona[nazwa_przestrzeni_ksiazki_strona]; if(tablica_przestrzeni_ksiazki_strona)then local tablica_ksiazki_strona=tablica_przestrzeni_ksiazki_strona[nazwa_ksiazki_strona]; if(tablica_ksiazki_strona)then if(tablica_ksiazki_strona.spis)then nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp=nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona; tablica_ksiazki.spis=tablica_ksiazki_strona.spis; tablica_ksiazki.licencja=tablica_ksiazki_strona.licencja; tablica_ksiazki.nazwa_bazowego_spisu=tablica_ksiazki_strona.nazwa_bazowego_spisu; tablica_ksiazki.tab_inne_spisy=tablica_ksiazki_strona.tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=tablica_ksiazki_strona.dodatkowe_strony_woluminu; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=tablica_ksiazki_strona.adres_woluminu_bazowego_spisu_rzeczy; tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,}; return 1; end; end; end end; end,function(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis) ---- if((nazwa_przestrzeni==nazwa_przestrzeni_ref_spis)and(nazwa_przestrzeni_ksiazki==nazwa_przestrzeni_ksiazki_ref_spis)and(nazwa_ksiazki==nazwa_ksiazki_ref_spis)and(nazwa_artykulu==nazwa_artykulu_ref_spis))then tekst_rozwiniety_calego_artykulu_ref=tekst_rozwiniety_calego_artykulu_ref_spis; local parametry_modul=require("Module:Parametry"); tablica_analizy_obiektow_strony_dany_modul_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_analizy_obiektow_strony_dany_modul_ref_spis); tablica_danych_parametrow_szablonu_strony_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_danych_parametrow_szablonu_strony_ref_spis); end; ---- end); local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres) tablica_ksiazki.spis=tabela_artykulow; if(czy_artykul_korzystany)then tablica_ksiazki.licencja=tabela_licencji_spisu_tresci; end; tablica_ksiazki.nazwa_bazowego_spisu=nazwa_glownego_spisu; tablica_ksiazki.tab_inne_spisy=tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=dodatkowe_artykuly; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=czy_podac_adres and adres_ksiazki_glownego_spisu_tresci or nil; end; if(tabela_artykulow==0)then if(czy_artykul_korzystany)then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"korzystana strona główna nie istnieje"); else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"dołączone strony główne nie istnieją",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(tabela_artykulow)then if(parametry_modul.TypeTable(tabela_artykulow))then if(adres_ksiazki_glownego_spisu_tresci)then __FUNKCJA_SPISU(tablica_ksiazki,true); local tablica_ksiazki_stara=tablica_ksiazki; local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1]; local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2]; local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3]; if((kod_wyniku==1)or(kod_wyniku==2))then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then local nazwa_artykulu=artykul; StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni ,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif((kod_wyniku==3)or(kod_wyniku==4))then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; end; else __FUNKCJA_SPISU(tablica_ksiazki,false); end; elseif(tabela_artykulow~=1)then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; end; else if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"))then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=""))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych książek na ich stronach głównych",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; end; end; end; end; end; ---- local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki(); if(wynik_bledu)then return wartosc_wyniku;end; local kod_wyniku_przekierowan=kod_wyniku_bazowy; ---- --if((not tablica_przestrzeni)or(not tablica_przestrzeni_ksiazki)or(not tablica_ksiazki)or(not artykul_analizowany))then -- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); --end; ---- if((tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy)and(kod_wyniku_bazowy))--[[and((kod_wyniku_bazowy==1)or(kod_wyniku_bazowy==2))]]then ---- nazwa_przestrzeni=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[1]; nazwa_przestrzeni_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[2]; nazwa_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[3]; nazwa_artykulu=artykul_bazowy; ---- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=tablica_ksiazki.referencja_do_nowej_formy_spisu[1],tablica_ksiazki.referencja_do_nowej_formy_spisu[2],tablica_ksiazki.referencja_do_nowej_formy_spisu[3]; end; local tabela_artykulow=tablica_ksiazki.spis; if(tabela_artykulow)then local nazwa_glownego_spisu=tablica_ksiazki.nazwa_bazowego_spisu; local tab_inne_spisy=tablica_ksiazki.tab_inne_spisy; local dodatkowe_artykuly=tablica_ksiazki.dodatkowe_strony_woluminu local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,false); if(kod_wyniku)then nazwa_artykulu=artykul; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; kod_wyniku_przekierowan=kod_wyniku_przekierowan or kod_wyniku; end; local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local PrzekierownieAwaryjne=function() if(not kod_wyniku_przekierowan)then --local artykul2,kod_wyniku2=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu); if(strona)then if(strona~=nazwa_modulu)then ---- local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazwa); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA_POBIERANIE(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif(wartosc_wyniku==0)then if(tabela_artykul)then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; else return wartosc_wyniku; end; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); nazwa_modulu=strona; else return 0; end; end; end; end; local wynik=PrzekierownieAwaryjne(); if(czy_artykul_korzystany)then self.nazwa_modulu_biezaca=nazwa_modulu; end; if(wynik)then return wynik;end; ---- if(czy_artykul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu=nazwa_przestrzeni_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=nazwa_artykulu; end; end; local nazwa_modulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu) or nazwa_modulu; -- przydzielanie tablicy if(czy_artykul_korzystany)then artykul_analizowany.artykul_biezacy=true; tablica_ksiazki.ksiazka_analizowana=true; end; --koniec --local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}"); if(not tablica_zmiennych)then tablica_zmiennych={};end; if(not tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)then tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local CzyLink=element_w_tablicy_obiekt.CzyLink; local CzyNum=element_w_tablicy_obiekt.CzyNum; local wartosc=element_w_tablicy_obiekt[1]; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum,}; if(czy_artykul_korzystany)then tablica_zmiennych.linkobiekt[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum;};end; end; local function StronaZbiorcza() if(czy_artykul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; local wynik=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,tablica_ksiazki.spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); artykul_analizowany.strona_zbiorcza=(wynik and "tak" or ""); return wynik; end; return nil; end; local strona_zbiorcza=StronaZbiorcza(); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); ---- local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; if((not tekst_rozwiniety_calego_artykulu_ref)or(not tablica_analizy_obiektow_strony_dany_modul_ref)or(not tablica_danych_parametrow_szablonu_strony_ref))then tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))and true or nil), nil) else tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=tekst_rozwiniety_calego_artykulu_ref,tablica_analizy_obiektow_strony_dany_modul_ref,tablica_danych_parametrow_szablonu_strony_ref; end; ---- if(not czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; if(czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then if(strona_zbiorcza)then self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; return nil; end; end; local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); if((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))then local aktualna_nazwa_modulu=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwa_modulu_aktualna_czy_biezaca or nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu); local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(self,aktualna_nazwa_modulu); if(tekst)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,aktualna_nazwa_modulu); local tablica_danych_parametrow_szablonu_strony={}; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,aktualna_nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return true; elseif(stronicowyparser_obiekty_modul.strona_start[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return true; end; end); if(wynik)then break;end; end; end; end; end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; ---- local tablica_obiekty=stronicowyparser_obiekty_modul.obiekty; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local format_elementowy_referencji_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_referencji_obiektowy; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; local szablony_wykorzystywane_przez_strony_zbiorcze=stronicowyparser_obiekty_modul.szablony_wykorzystywane_przez_strony_zbiorcze; local format_elementowy_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_obiektowy; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; ---- local strona_start=stronicowyparser_obiekty_modul.strona_start; local strona_start_ze_spisem_rzeczy_strony=stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony; local strona_start_inne=stronicowyparser_obiekty_modul.strona_start_inne; local szablony_strony_zbiorczej=stronicowyparser_obiekty_modul.strona_zbiorcza; ---- local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe; local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe; local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu; local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego; ---- local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tabela_elementow_strony_kodow={}; -- for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do local function AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) if(czy_artykul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(strona_start[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; stronastart=true; return; elseif(strona_start_inne[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.strona_ze_szablonem_strona_start="tak"; self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_prestreni_nazw))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_przestrzeni))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; end; end; local plik=mw.ustring.match(nazwa_szablonu_wywolania,"^:"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=(nazwa_szablonu_wywolania=="Wypowiedzenie"); local czy_linkobiekt; local czy_link;local czy_pobierz; local czy_wypowiedzenie_z_parametrami; local czy_linkobiekt_z_parametrami; if(czy_wypowiedzenie)then czy_linkobiekt=false; czy_link=false; czy_pobierz=false; czy_wypowiedzenie_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["rodzaj"]); else czy_linkobiekt=(nazwa_szablonu_wywolania=="LinkObiekt"); if(czy_linkobiekt)then czy_link=true; czy_pobierz=false; czy_linkobiekt_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["typ"]); else czy_link=mw.ustring.match(nazwa_szablonu_wywolania,"^Link"); czy_pobierz=(not czy_link) and mw.ustring.match(nazwa_szablonu_wywolania,"^Pobierz") or nil; end; end; if((not czy_link)and(not czy_pobierz))then local wartosc_elementu;local numer_uchwytu; if(not czy_wypowiedzenie_z_parametrami) then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; else local rodzaj=tabela_parametrow_szablonu["rodzaj"]; if(rodzaj)then wartosc_elementu=format_elementowy_obiektowy[rodzaj] and rodzaj or nil; if(wartosc_elementu)then numer_uchwytu=tablica_obiekty[5]; end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; elseif(czy_artykul_korzystany)then if(czy_link)then local wartosc_elementu; if(not czy_linkobiekt_z_parametrami)then wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; else local typ=tabela_parametrow_szablonu["typ"]; if(typ)then typ=format_elementowy_referencji_obiektowy[typ] and typ or nil; if(typ)then wartosc_elementu=mw.getContentLanguage():ucfirst(typ); end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; end; end; elseif(czy_pobierz)then local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie,true); return; end; end; end; if(czy_wypowiedzenie)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artykul_korzystany,tablica_obiekty[5],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,lista_dwuelementowa,kod); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); if(lista_dwuelementowa)then local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); local tekst=stronicowyparser_szablonytekstu_modul.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu); local bez_preprocess=stronicowyparser_szablonytekstu_modul.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu); local czy_bez_preprocess=parametry_modul.CzyTak(bez_preprocess); if(tekst)then local czy_szablon_wszystko=false; tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul, function(szablon,obiekt,kod) if(czy_bez_preprocess)then return nil;end; if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if( (tab_szablony[nazwa_szablonu]) or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu]) or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu]) or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu]) )then if(not czy_artykul_korzystany)then tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")) if(self)then local czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz"); if(czy_link_lub_pobierz)then p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu); end; end; end; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end; return nil; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- instrukcje warunkowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- wywołania ramek Lua w Scribunto return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- tagi szablonowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end); czy_szablon_wszystko=czy_szablon_wszystko or true; if(wynik)then return wynik;end; elseif(obiekt=="ZMIENNA")then czy_szablon_wszystko=czy_szablon_wszystko or true; local zawartosc=mw.ustring.match(szablon,"^{{{(.*)}}}$"); if(zawartosc)then zawartosc=mw.ustring.gsub(zawartosc,"|","{{!}}"); return "{{(((}}"..zawartosc.."{{)))}}"; end; end; end); if((czy_szablon_wszystko)and(not bez_preprocess))then local frame=mw.getCurrentFrame(); tekst=frame:preprocess(tekst); end; lista_dwuelementowa[2]=tekst; end; --local __metatabelka=getmetatable(tabela_parametrow_szablonu); --if(__metatabelka)then setmetatable(tabela_parametrow_szablonu,nil);end; stronicowyparser_szablonytekstu_modul.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany); end; return; elseif(czy_artykul_korzystany)then if(czy_linkobiekt)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="LinkObiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,obiekt,kod,tablica_zmiennych,tabela_parametrow_szablonu,"Obiekt",nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else if(stronicowyparser_obiekty_modul.szablony_z_lokalnym_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return; elseif(stronicowyparser_obiekty_modul.bez_uchwytow_spis_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil; if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; else self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; end; return; elseif(stronicowyparser_obiekty_modul.szablony_spisu[nazwa_szablonu_wywolania])then local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or ""; local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or ""; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; local czy_analiza=parametry_modul.CzyTak(tabela_parametrow_szablonu["analiza"]); local czy_parser=parametry_modul.CzyTak(tabela_parametrow_szablonu["parser"]); local czy_specjalne=parametry_modul.CzyTak(tabela_parametrow_szablonu["specjalne"]); local dokumentacja=tabela_parametrow_szablonu["dokumentacja"]; local czy_dokumentacja; if(not dokumentacja)then czy_dokumentacja=czy_analiza or czy_specjalne or czy_parser; else czy_dokumentacja=parametry_modul.CzyTak(dokumentacja); end; if( ((czy_dokumentacja)and(czy_parser)) or((not czy_dokumentacja)and(czy_analiza)) )then p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); end; return; else local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA_KATEGORIE) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ""; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ""; local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local uchwyt=nazwa_szablonu_wywolania..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; if((stronicowyparser_obiekty_modul.szablony_kontenerowe[nazwa_szablonu_wywolania]) or(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]) )then if(szablony_wykorzystywane_przez_strony_zbiorcze[nazwa_szablonu_wywolania])then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nil,KtorySzablonMaZwracacKategorie); end; return; elseif((strona_zbiorcza)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); return; end; end; end; end; end; end; end; end; ---- local function GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer) stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer,nazwa_modulu_aktualna_czy_biezaca,tablica_danych_parametrow_szablonu_strony,AnalizaParametrowaOrazNazwowaStronicowegoIteratoraSzablonowego); end; local function IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu,tab_numer) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do GeneralnaAnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer); end; end; if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony=nazwy_modul["PEŁNABAZOWANAZWASTRONY"](nazwa_modulu); end; IterowaniePoElementachTekstu(tekst_rozwiniety_calego_artykulu); ---- local tablica_danych_nazwy_artykulu=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu] or {}; tablica_danych_nazwy_artykulu.uchwyty_i_numeracje=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; ---- local wiki_modul=require("Module:Wiki"); tablica_danych_nazwy_artykulu.link_wikidane={wiki_modul.KodyKlasStronyNaDanejWiki{["strona"]=nazwa_modulu_aktualna_czy_biezaca,["nagłówek"]=true,["aktywny"]=true,},}; if(not czy_artykul_korzystany)then if(pozawoluminowe_strony)then if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then local nazwa_modulu_korzystana_bazowa=self.tabela_listy_danych_analizy_ksiazki.nazwa_bazowa_strony; local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne"); local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnika"](nazwa_modulu_korzystana_bazowa,nazwa_modulu); tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,pozawoluminowe_strony,czy_artykul_korzystany,}; end; else local niekorzystany_wolumin=(not korzystany_wolumin); if(niekorzystany_wolumin)then if(not tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony)then local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne"); local zrostek=stronicowyparser_pomocne_modul["SkrótDoNumeruOdnośnikaDołączonejKsiążki"](nazwa_ksiazki); tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony={zrostek,niekorzystany_wolumin,czy_artykul_korzystany,}; end; end; end; end; ---- if(czy_artykul_korzystany)then if(analiza_stron_korzystanych_zbiorczych)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); end; end; local strona; if(czy_artykul_korzystany)then strona="";else strona=nazwa_modulu;end; ---- if(czy_artykul_korzystany)then local stronicowyparser_szablonytekstu_modul=require("Module:StronicowyParser/SzablonyTekstu"); stronicowyparser_szablonytekstu_modul.UstawPobierzKorzystanie(tablica_zmiennych); tekst_rozwiniety_calego_artykulu=stronicowyparser_szablonytekstu_modul.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu) or tekst_rozwiniety_calego_artykulu; end; ---- local function SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca) return function() if(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)) or((not czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)))then ---- local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil; ---- tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false); ---- local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"powtórka nagłówek w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki) if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"nagłowek w tekście rozdziału w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu() return stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); end; local nazwa_naglowka=stronicowyparser_obiekty_modul.nazwa_szablonu_wprowadzenia_tekstu; local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron"); local tablica_naglowka_obiekty=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_naglowka]; tablica_naglowka_obiekty.uchwyty_bez_numeracji={}; local toc=stronicowyparser_glownafunkcjazbieraniadanych_modul.SpisRzeczyWedlePodanegoTekstu(self,tekst_rozwiniety_calego_artykulu,strona, czy_artykul_korzystany,nil,tablica_naglowka_obiekty.uchwyty_bez_numeracji, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,{KtorySzablonMaZwracacKategorieNaglowek,KtorySzablonMaZwracacKategorieTekst,CzyJestTakiProblemJakoElementTablicySzablonuNaglowkaPozaNapisemWprowadzeniaTekstu,},nil,tabela_elementow_strony_kodow); tablica_danych_nazwy_artykulu.TOC=toc; return true; end; end; end; local czy_spis_function=SpisToc(self,czy_artykul_korzystany,tablica_danych_nazwy_artykulu,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,tabela_elementow_strony_kodow,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca); local wynik=czy_spis_function(); if(not czy_artykul_korzystany)then if(not wynik)then tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=czy_spis_function; end; end; StronaSubstFunkcja(tablica_danych_nazwy_artykulu,tablica_ksiazki.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.link_wikidane=tablica_danych_nazwy_artykulu.link_wikidane; self.tabela_listy_danych_analizy_ksiazki.prefiks_numeru_woluminowego_strony=tablica_danych_nazwy_artykulu.prefiks_numeru_woluminowego_strony; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw[nazwa_przestrzeni_ksiazki]; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; --self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron=tablica_zmiennych; end; if(not czy_artykul_korzystany)then tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=tablica_zmiennych; if(not self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista)then self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista={};end; table.insert(self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista,tablica_danych_nazwy_artykulu); else local dane_zebrane_ze_stron_lista=self.tabela_listy_danych_analizy_ksiazki.dane_zebrane_ze_stron_lista; if(dane_zebrane_ze_stron_lista)then for _,tablica_danych_nazwy_artykulu in ipairs(dane_zebrane_ze_stron_lista)do tablica_danych_nazwy_artykulu.dane_zebrane_ze_stron=nil; tablica_danych_nazwy_artykulu.TOCSPIS_FUNCTION=nil; end; end; tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane=nil; end; return self.tabela_listy_danych_analizy_ksiazki,tablica_zmiennych,true; end; return p; lpuz2m4ukruxrv47o3o2mqmwhrvobfe Szablon:OpisKsiążek/opis 10 56377 555502 552401 2026-09-10T17:26:21Z Persino 2851 /* Zobacz też */ 555502 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Ramka}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon służy do podawania nazwy strony w przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz w przestrzeni {{Np|Template|link=tak}} i {{Np|Module|link=tak}}, używając kolejno szablonów {{s|s}} i {{s|m}}, lub podając nazwę linku, która jest wyświetlana jako zwykły link (nie jak szablon lub moduł - bez użycia tych szablonów) przy użyciu szablonu {{s|Link wewnętrzny}}, wraz z ich opisami. Można też podać alternatywną wyświetlaną nazwę strony. Pozycje tych stron są numerowane. == Opis parametrów == * {{Code|1}}, {{Code|2}}, {{Code|...}}, {{Code|n}} - parametry nazw pozycji (wymagane), * {{Code|_1}}, {{Code|_2}}, {{Code|...}}, {{Code|_n}} - parametry opisów pozycji o danych nazwach (opcjonalny), * {{Code|o1}}, {{Code|o2}}, {{Code|...}}, {{Code|on}} - nazwy wyświetlane linków, przez szablon, stron (opcjonalny), * {{Code|id}} - unikalny identyfikator ramki {{Tag|div}}, w której wewnątrz znajduje się tabela listy pozycji wraz z opisami (opcjonalny), * {{Code|klasa}} - klasy reguł ramki {{Tag|div}}, w której wewnątrz znajduje się tabela listy pozycji wraz z opisami (opcjonalny), * {{Code|styl}} - styl ramki {{Tag|div}}, w której wewnątrz znajduje się tabela listy pozycji wraz z opisami (opcjonalny). Oznaczenie {{Code|n}} w parametrach powyższych jest to największa liczba numerowanych parametrów. == Przykład == ; Przykład {{Pre|{{s|OpisKsiążek | 1 {{=}} ModPlug Tracker | _1 {{=}} Podręcznik opisuje korzystanie z programu ModPlug Tracker - prostego narzędzia do tworzenia muzyki. | 2 {{=}} AutoIt | _2 {{=}} Podręcznik programowania w języku skryptowym AutoIt. | 3 {{=}} Pisanie OS | _3 {{=}} Podręcznik wprowadzający w pisanie systemów operacyjnych.{{!}} o3 {{=}} Pisanie systemów operacyjnych | 4 {{=}} Szablon:ListaKategorii | _4 {{=}} Szablon do wyświetlania listy kategorii, danej kategorii, jako pozycje. | 5 {{=}} Moduł:Mapa | _5 {{=}} Moduł do wyświetlania mapy w artykule. | 6 {{=}} Moduł:Mapa | _6 {{=}} Moduł do wyświetlania mapy w artykule. | o6 {{=}} Moduł Mapa | 7 {{=}} Szablon:Mapa | _7 {{=}} Szablon do wyświetlania nazwy mapy w artykule. | o7 {{=}} Szablon Mapa | 8 {{=}} Wikijunior:Polska | _8 {{=}} Podręcznik dla dzieci na temat Polski | 9 {{=}} Astronomiczne podstawy geografii/Okładka | _9 {{=}} Jest to skrypt z astronomicznych podstaw geografii, który daje przegląd wybranych zagadnień tej tematyki. }}}} ; Wynik {{OpisKsiążek | 1 = ModPlug Tracker | _1 = Podręcznik opisuje korzystanie z programu ModPlug Tracker - prostego narzędzia do tworzenia muzyki. | 2 = AutoIt | _2 = Podręcznik programowania w języku skryptowym AutoIt. | 3 = Pisanie OS | _3 = Podręcznik wprowadzający w pisanie systemów operacyjnych.| o3 = Pisanie systemów operacyjnych | 4 = Szablon:ListaKategorii | _4 = Szablon do wyświetlania listy kategorii, danej kategorii, jako pozycje. | 5 = Moduł:Mapa | _5 = Moduł do wyświetlania mapy w artykule. | 6 = Moduł:Mapa | _6 = Moduł do wyświetlania mapy w artykule. | o6 = Moduł Mapa | 7 = Szablon:Mapa | _7 = Szablon do wyświetlania nazwy mapy w artykule. | o7 = Szablon Mapa | 8 = Wikijunior:Polska | _8 = Podręcznik dla dzieci na temat Polski | 9 = Astronomiczne podstawy geografii/Okładka | _9 = Jest to skrypt z astronomicznych podstaw geografii, który daje przegląd wybranych zagadnień tej tematyki. }} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Strona do pozycji (podręcznika lub strony).", "type": "wiki-page-name" }, "2": { "description": "Strona do pozycji (podręcznika lub strony).", "type": "wiki-page-name" }, "3": { "description": "Strona pozycji (podręcznika lub strony).", "type": "wiki-page-name" }, "4": { "description": "Strona do pozycji (podręcznika lub strony).", "type": "wiki-page-name" }, "5": { "description": "Strona do pozycji (podręcznika lub strony).", "type": "wiki-page-name" }, "6": { "description": "Strona do pozycji (podręcznika lub strony).", "type": "wiki-page-name" }, "7": { "description": "Strona do pozycji (podręcznika lub strony).", "type": "wiki-page-name" }, "8": { "description": "Strona do pozycji (podręcznika lub strony).", "type": "wiki-page-name" }, "9": { "description": "Strona do pozycji (podręcznika lub strony).", "type": "wiki-page-name" }, "10": { "description": "Strona do pozycji (podręcznika lub strony).", "type": "wiki-page-name" }, "_1": { "description": "Opis pozycji o numerze 1.", "type": "string" }, "_2": { "description": "Opis pozycji o numerze 2.", "type": "string" }, "_3": { "description": "Opis pozycji o numerze 3.", "type": "string" }, "_4": { "description": "Opis pozycji o numerze 4.", "type": "string" }, "_5": { "description": "Opis pozycji o numerze 5.", "type": "string" }, "_6": { "description": "Opis pozycji o numerze 6.", "type": "string" }, "_7": { "description": "Opis pozycji o numerze 7.", "type": "string" }, "_8": { "description": "Opis pozycji o numerze 8.", "type": "string" }, "_9": { "description": "Opis pozycji o numerze 9.", "type": "string" }, "_10": { "description": "Opis pozycji o numerze 10.", "type": "string" }, "o1": { "description": "Nazwa wyświetlana strony, ale nie szablonu, czy modułu.", "type": "string" }, "o2": { "description": "Nazwa wyświetlana strony, ale nie szablonu, czy modułu.", "type": "string" }, "o3": { "description": "Nazwa wyświetlana strony, ale nie szablonu, czy modułu.", "type": "string" }, "o4": { "description": "Nazwa wyświetlana strony, ale nie szablonu, czy modułu.", "type": "string" }, "o5": { "description": "Nazwa wyświetlana strony, ale nie szablonu, czy modułu.", "type": "string" }, "o6": { "description": "Nazwa wyświetlana strony, ale nie szablonu, czy modułu.", "type": "string" }, "o7": { "description": "Nazwa wyświetlana strony, ale nie szablonu, czy modułu.", "type": "string" }, "o8": { "description": "Nazwa wyświetlana strony, ale nie szablonu, czy modułu.", "type": "string" }, "o9": { "description": "Nazwa wyświetlana strony, ale nie szablonu, czy modułu.", "type": "string" }, "o10": { "description": "Nazwa wyświetlana strony, ale nie szablonu, czy modułu.", "type": "string" }, "styl": { "description": "Styl ramki <div>...</div>, w której wewnątrz znajduje się tabela listy pozycji wraz z opisami.", "type": "string" }, "klasa": { "description": "Klasy reguł ramki <div>...</div>, w której wewnątrz znajduje się tabela listy pozycji wraz z opisami.", "type": "string" } }, "description": "Szablon służy do podawania nazwy strony w przestrzeni nazw (główna) i Wikijunior oraz w przestrzeni Szablon i Moduł, używając kolejno szablonów {{s}} i {{m}}, lub podając nazwę linku, która jest wyświetlana jako zwykły link (nie jak szablon lub moduł - bez użycia tych szablonów) przy użyciu szablonu {{Link wewnętrzny}}, wraz z ich opisami. Można też podać alternatywną wyświetlaną nazwę strony. Pozycje tych stron są numerowane." } </templatedata> == Zobacz też == * {{s|ListaKategorii}} - wyświetla listę stron, znajdującej się w podanej kategorii, występujące tam jako pozycje, tzn. podkategorie, zwykłe strony i pliki (obrazki). {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony formułujące tabele | Szablony specjalne | Szablony opisów | Szablony przykładów podręcznikowe }} </includeonly> lq4ixuczu163wybzkswpvsxwb6wgvqc Szablon:EfektKodów/opis 10 58877 555501 516799 2026-09-10T17:25:25Z Persino 2851 /* Zobacz też */ 555501 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Ramka}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon używamy do przedstawienia kodu i jego zastosowania, wraz z jego wynikiem. == Opis parametrów == Szablon przyjmuje parametry numerowane, które muszą być podane (są one wymagane), w których jest symboliczny podany kod bez jego uruchomienia, i ich kolegów, w których jest wykonywany wiki-kod, i są one numerowane w schemacie {{Code|_i}} (gdzie {{Code|i}}, to numerek wiersza tego szablonu), co przedstawia zastosowanie z dolnym myślnikiem z numerkiem odnoszącym się do parametru numerowanego. ; Parametry styli dla danego wiersza * Parametry przedrostkiem {{Code|styl_}}, mówiące, że należy ustawić style dla danego wiersza. ; Parametry styli dla danej komórki w danym wierszu * Elementy takie jak: {{Code|styl-opis_}} (dla pierwszej komórki w wierszu) i {{Code|styl-spis_}} (dla drugiej komórki w wierszu), one dostarczają style w części opisowej (jeżeli podano - pierwsza komórka) lub w części spisowej (jeżeli podano - druga komórka). * Jeżeli, któreś z elementów lub dwa, z poprzedniego wiersza nie pojawiły się, to można podać zmienną: {{Code|styl-wiersz_}} (dla wiersza), wtedy można wykonać funkcje opisane w tych podanych wersach. Ta zmienna robi to samo, co jej odpowiedniki: '''-opis_''' i '''-spis_''', tylko jest o mniejszym priorytecie. ; Parametry scalania nie po HTML-owemu komórek kolumny * Parametry z przedrostkiem: {{Code|scal_}}, mówiące, że dolne obramowanie w danym wierszu aktualnej komórki i górne, jeżeli ustalono tam ten parametr dla poprzedniej komórki, ma się wyzerować, co odpowiada wizulanie scalaniu komórek, ale według {{lpg|HTML}} nie są one scalane. ---- ; Style działające podwarunkiem, że podano parametr opisany niżej * Elementy takie jak: {{Code|bez-overflow-opis_}} (dla pierwszej komórki w wierszu) i {{Code|bez-overflow-spis_}} (dla drugiej komórki w wierszu), mówiące, że elementy mogą być opatrzone dodatkowymi podanymi stylami wraz z podanymi maksymalnymi wysokościami i szerokościami ;; Style zastępcze do dwóch poprzednich * Jeżeli któreś lub dwa elementy się nie pojawiły z wersu poprzedniego z listy, to można podać zmienną: {{Code|bez-overflow-wiersz_}} (dla wiersza), wtedy można wykonać funcję opisane dla nich. Ta zmienna robi to samo, co jej odpowiednik '''-opis_''' i '''-spis_''', ale ta zmienna ma mniejszą ważność niż jej parametr niewierszowy. ---- ; Style szerokości * Elementy takie jak: {{Code|w_opis_}} (dla pierwszej komórki w wierszu) i {{Code|w_spis_}} (dla drugiej komórki w wierszu), są podane, lub któreś z nich, wtedy jest ustawiany parametr właściwość: {{Code|max-width:}}, kolejno dla pierwszej (jeżeli parametr podano) i drugiej komórki wiersza (jeżeli parametr podano). * Jeżeli, któreś lub dwa pierwsze, elementy z ostatniego akapitu się nie pojawiły, to można podać zmienną: {{Code|w_}}, wtedy ona robi to samo, co poprzednie dwa zmienne w poprzednim akapicie, ale ta zmienna ma mniejszą ważność niż jej parametr niewierszowy. ---- ; Style wysokości * Elementy takie jak: {{Code|h_opis_}} (dla pierwszej komórki w wierszu) i {{Code|h_spis_}} (dla drugiej komórki w wierszu), są podane, lub któreś z nich, wtedy jest ustawiany parametr właściwość: {{Code|max-height:}}, kolejno dla pierwszej i drugiej komórki wiersza. * Jeżeli, któreś lub dwa pierwsze, elementy z ostatniego akapitu się nie pojawiły, to można podać zmienną: {{Code|h_}}, wtedy ona robi to samo, co poprzednie dwa zmienne w poprzednim akapicie, ale ta zmienna ma mniejszą ważność niż jej parametr niewierszowy. ---- ; Style z wewnętrznymi automatycznymi suwakami * Gdy: {{Code|cała-szerokość-opis_}} - opisu (pierwsza komórka), i {{Code|cała-szerokość-spis_}} - spisu (druga komórka), oczywiście dla wiersza, się pojawią, to ich element '''opis'''-owy lub '''spis'''-owy, wtedy ich elementy są o całej szerokości, jak dla nich ustalono, tzn. dla nich jest ustawiona właściwość {{Code|height:100%}} i {{Code|width:auto}}, one się pojawiają, gdy nie pojawią się już elementy z {{Code|bez-overflow-}} (pusty lub niepodany), co wymusza dopasowanie się elementu do zawartości, o ile nie zostaną przekroczone rozmiary maksymalne, jeżeli zostały ustalone, nie podanie tych maksymów wymusza wyłączenie: {{Code|overflow:auto}}, co zachowanie jest normalne dla tabelek. * Zamiast tych dwóch elementów w poprzednim akapicie, lub któreś z nich, można podać parametr: {{Code|cała-szerokość-w_}}, co ona robi to samo, co one. ---- ---- ; Dodatki do opisu zmiennych Parametry {{Code|-opis_}} są dla części tabeli '''opis'''-u (dla pierwszej komórki w wierszu tabeli) i {{Code|-spis_}} są dla części tabeli '''spis'''-u (dla drugiej komórki w wierszu tabeli), i one mają pierwszeństwo niż funkcje robiące to samo, co te dwa bez tego zrostka, należy rozważać, o tym, dla tych dwóch komórek z osobna, które funkcje są pierwsze, a które jako w części domyślnej, bo może być inaczej dla dwóch różnych komórek w wierszu. ---- Elementy z {{Code|-coś_}} występują wywołaniu szablonu, to po niej w tym wywołaniu musi bezpośrednio znajdować się numer mówiący o numerze wiersza, dla której ma to zastosować. ---- Do szablonu można wsadzić też parametr, np. {{Parametr|kod-rozmiar|50%}}, mówiący o szerokości pierwszej jego kolumny. == Przykład == ; Przykład {{Pre start}} {{s|EfektKodów | 1 {{=}} {{s|s|Dopracować|powód}} | _1 {{=}} {{s|OpakujKategorieZeSortowaniem|{{s|Dopracować|powód|typ jednostki{{=}}artykuł}}}} | 2 {{=}} {{s|s|Integruj z|cel{{=}}strona/podstrona}} * wstawiamy na stronę, do której należy dołączyć treść innej | _2 {{=}} {{s|OpakujKategorieZeSortowaniem|{{s|Integruj z|cel{{=}}strona/podstrona|typ jednostki{{=}}artykuł}}}} | 3 {{=}} {{s|s|Integruj do|cel{{=}}strona/podstrona}} * wstawiamy na stronę, którą należy zlikwidować a jej treść włączyć do innej | _3 {{=}} {{s|OpakujKategorieZeSortowaniem|{{s|Integruj do|cel{{=}}strona/podstrona|typ jednostki{{=}}artykuł}}}} | 4 {{=}} {{s|s|POV}} | _4 {{=}} {{s|POV}} | 5 {{=}} {{s|s|Fakt|Wątpliwa informacja}} | _5 {{=}} {{s|OpakujKategorieZeSortowaniem|{{s|Fakt|Wątpliwa informacja|typ jednostki{{=}}artykuł}}}} }} {{Pre koniec}} ; Wynik {{EfektKodów | 1 = {{s|Dopracować|powód}} | _1 = {{OpakujKategorieZeSortowaniem|{{Dopracować|powód|typ jednostki=artykuł}}}} | 2 = {{s|Integruj z|cel{{=}}strona/podstrona}} * wstawiamy na stronę, do której należy dołączyć treść innej | _2 = {{OpakujKategorieZeSortowaniem|{{Integruj z|cel=strona/podstrona|typ jednostki=artykuł}}}} | 3 = {{s|Integruj do|cel{{=}}strona/podstrona}} * wstawiamy na stronę, którą należy zlikwidować a jej treść włączyć do innej | _3 = {{OpakujKategorieZeSortowaniem|{{Integruj do|cel=strona/podstrona|typ jednostki=artykuł}}}} | 4 = {{s|POV}} | _4 = {{POV}} | 5 = {{s|Fakt|Wątpliwa informacja}} | _5 = {{OpakujKategorieZeSortowaniem|{{Fakt|Wątpliwa informacja|typ jednostki=artykuł}}}} }} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony formułujące tabele | Szablony specjalne | Szablony opisów | Szablony przykładów stron projektowe }} </includeonly> fchrgz58elco3jix1cmz0qswb6k04s4 Moduł:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron 828 62247 555451 555443 2026-09-10T13:04:35Z Persino 2851 555451 Scribunto text/plain local p={}; function p.PobieranieInformacjiRamkiRozpatrywanejStrony(self) return self.tabela_listy_danych_analizy_ksiazki; end; function p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi(self) self.tabela_listy_danych_analizy_ksiazki={}; self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron={}; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); self.tabela_listy_danych_analizy_ksiazki.problemy=nil; self.tabela_listy_danych_analizy_ksiazki.licencja={}; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local function DaneNazw(pelna_nazwa_strony) local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_strony,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw); local nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_strony,tabela_nazw); return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; end; local strona_aktualna=ksiazkowe_modul["PełnaNazwaArtykułu"](); local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=DaneNazw(strona_aktualna); local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "") ..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "") ..nazwa_ksiazki; local pelna_nazwa_ksiazki_ustawienia="Szablon:Podręcznik/Ustawienia/"..pelna_nazwa_ksiazki; local techniczne_modul=require("Module:Techniczne"); local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki_ustawienia.."/config",tekst=true,}; if(ile>0)then local frame=mw.getCurrentFrame(); local szablonowe_modul=require("Module:Szablonowe"); local nazwa_szablonu=szablonowe_modul.NazwaSzablonu(pelna_nazwa_ksiazki_ustawienia); local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}}; local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}}; if(not mw.ustring.match(ksiazka,"^%s*$"))then local strona=ksiazka..((artykul~="") and ("/"..artykul) or ""); local pudelko_modul=require("Module:Pudełko"); local czy_strona_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](strona); if(not czy_strona_niepoprawna)then local html_modul=require("Module:Html"); strona=html_modul.DecodeHtml(strona,true); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=strona_aktualna,}; local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,tekst=true,}; if(ile>0)then strona=ksiazkowe_modul["PełnaNazwaArtykułu"](strona); if(strona~=strona_aktualna)then local aktualna_nazwa_przestrzeni,aktualna_nazwa_przestrzeni_ksiazki,aktualna_nazwa_ksiazki,aktualna_nazwa_artykulu=nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=DaneNazw(strona); --local aktualna_nazwa_przestrzeni,aktualna_nazwa_przestrzeni_ksiazki,aktualna_nazwa_ksiazki,aktualna_nazwa_artykulu=DaneNazw(strona_aktualna); self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni=aktualna_nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki=aktualna_nazwa_przestrzeni_ksiazki; self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki=aktualna_nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu=aktualna_nazwa_artykulu; if((aktualna_nazwa_przestrzeni~=nazwa_przestrzeni) or(aktualna_nazwa_przestrzeni_ksiazki~=nazwa_przestrzeni_ksiazki) or(aktualna_nazwa_ksiazki~=nazwa_ksiazki) or(aktualna_nazwa_artykulu~=nazwa_artykulu) )then local zastepcza=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępcza",}}; local parametry_modul=require("Module:Parametry"); self.tabela_listy_danych_analizy_ksiazki.alternatywna=parametry_modul.CzyTak(zastepcza); if(not self.tabela_listy_danych_analizy_ksiazki.alternatywna)then self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca=true; end; end; end; end; end; end; end; local tablica_zmiennych={}; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={}; tablica_zmiennych.linkobiekt={}; local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron"); local tabela_listy_danych_analizy_ksiazki=stronicowyparser_zbieraniedanychstron_modul.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, true,tablica_zmiennych); local parametry_modul=require("Module:Parametry"); if(parametry_modul.TypeTable(tabela_listy_danych_analizy_ksiazki))then local stronicowyparser_numeracjaobiektowstron_modul=require("Module:StronicowyParser/NumeracjaObiektówStron"); stronicowyparser_numeracjaobiektowstron_modul.PrzetwarzanieZebranychInformacjiDanejKorzystanejStrony(self,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; return self.tabela_listy_danych_analizy_ksiazki; end; function p.SpisRzeczyWedlePodanegoTekstu(self,tekst_artykulu,nazwa_strony,czy_artykul_korzystany, tylko_naglowek,obiekty,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,KtorySzablonMaZwracacKategorie,wzory_zamiast_kodow,tabela_elementow_strony_kodow) ---- local czy_kodowanie=((nazwa_modulu_aktualna_czy_biezaca)or(tablica_analizy_obiektow_strony_dany_modul)); ---- if(not nazwa_modulu_aktualna_czy_biezaca)then if czy_artykul_korzystany then local nazwa_przestrzeni_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni or self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_przestrzeni_ksiazki_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki or self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki or self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwa_artykulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu or self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local nazwy_modul=require("Module:Nazwy"); nazwa_modulu_aktualna_czy_biezaca=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_aktualna_czy_biezaca,nazwa_przestrzeni_ksiazki_aktualna_czy_biezaca,nazwa_ksiazki_aktualna_czy_biezaca,nazwa_artykulu_aktualna_czy_biezaca); else nazwa_modulu_aktualna_czy_biezaca=nazwa_strony; end; end; local html_modul=require("Module:Html"); nazwa_strony=html_modul.EncodeId(nazwa_strony); ----- local tablica_spisu_tresci=nil; local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron"); local szablonowe_modul=require("Module:Szablonowe"); local nazwa_modulu_aktualna_czy_biezaca_szablonowa=szablonowe_modul["SzablonowaNazwaStrony"](nazwa_modulu_aktualna_czy_biezaca); local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer(); local tablica_powtarzajacych_sie_elementow={}; local elementy_linku=nil; local frame=mw.getCurrentFrame(); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local html_modul=require("Module:Html"); local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe; local tab_naglowki=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu; ---- local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe; ---- local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego; local tab_szablony_szablony_stron_zbiorczych=stronicowyparser_obiekty_modul.szablony_stron_zbiorczych; local tab_szablony_inne_szablony_stron_zbiorczych=stronicowyparser_obiekty_modul.inne_szablony_stron_zbiorczych; local tab_szablony_strona_start=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu; ---- local tab_szablony_indeksowania=stronicowyparser_obiekty_modul.szablony_indeksowania; --- local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); ---- if(czy_kodowanie)then local szablony_sztucznego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_sztucznego_wprowadzenia_tekstu; local szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu; local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local SpecjalneWprowadzeniaTekstu=function(szablon,obiekt,kod,czy_szablon,czy_znacznik,czy_liczyc,funkcja1,funkcja2) if(czy_szablon)then return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_strony,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local numer_parametru=szablony_sztucznego_wprowadzenia_tekstu[nazwa_szablonu]; if(numer_parametru)then local parametr=tabela_parametrow_szablonu[numer_parametru]; if(parametr)then local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(parametr); if(naglowek)then return funkcja1(parametr); end; end; else local tabela_nazw={}; local function ParametrNR(numer) return stronicowyparser_potrzebne_modul.SpisRzeczySzablon(nazwa_szablonu,numer,tabela_parametrow_szablonu,tabela_nazw); end; local parametr=ParametrNR(1); if(parametr)then if(czy_liczyc)then local ile_poziom=tonumber(ParametrNR(5)) or 6; ile_poziom=(ile_poziom>0)and ile_poziom or 1; ile_poziom=(ile_poziom<=6) and ile_poziom or 6; local poziom=mw.ustring.rep("=",ile_poziom); local adres_ksiazki=ParametrNR(2); local nazwa_modulu_aktualna_czy_biezaca_strony=adres_ksiazki and ParametrNR(2) or nazwa_modulu_aktualna_czy_biezaca; local adres=nazwa_modulu_aktualna_czy_biezaca_strony..((parametr~="")and ("/"..parametr)or ""); adres=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(adres,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or adres; adres=html_modul.DecodeHtml(adres,true); parametr=ParametrNR(3) or parametr; local dodatek=ParametrNR(4); parametr=parametr..((dodatek) and (" "..dodatek) or ""); local ile,_=techniczne_modul.PoliczZbiory{[1]=adres,tekst=true,}; local ObiektKodNumer=function(szablon,obiekt) local tablica_analizy_obiektow_strony_dany_modul_numer=tablica_analizy_obiektow_strony_dany_modul[obiekt]; local kod_numer=1; for name,_ in pairs(tablica_analizy_obiektow_strony_dany_modul_numer)do kod_numer=math.max(kod_numer,name); end; kod_numer=kod_numer+1; tablica_analizy_obiektow_strony_dany_modul_numer[kod_numer]=szablon; local kod_szablonowe=szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod_numer); return kod_szablonowe; end; if(ile>0)then local parametr=poziom..parametr..poziom; return funkcja1(parametr); else local szablon="<span style=\"color:red;\">"..parametr.."</span>"; local kod_parametr=ObiektKodNumer(szablon,"ZNACZNIK"); local parametr=poziom..kod_parametr..poziom; return funkcja1(parametr); end; else return funkcja1(parametr); end; end; end; end); elseif(czy_znacznik)then local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((zawartosc)and(nazwa))then if(znaczniki_wprowadzenia_tekstu[nazwa])then return funkcja2(nazwa,zawartosc,atrybuty); end; end; end; end; tekst_artykulu=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(tekst_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,nil, function(szablon,obiekt,kod) local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK");local czy_wikitabelka=(obiekt=="WIKITABELA"); if((czy_szablon)or(czy_znacznik)or(czy_wikitabelka))then local wynik=SpecjalneWprowadzeniaTekstu(szablon,obiekt,kod,czy_szablon,czy_znacznik,false,function()return true;end,function()return true;end); if(wynik)then return true,nil,nil,true;end; local rozdzial=mw.ustring.match(szablon,"\n(=[^\n]*[^%s=][^\n]*=)[^%S\n]*\n"); if(rozdzial)then local naglowek,poziom=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial); if(naglowek)then return true,nil,nil,true; end; end; end; end, function(szablon,obiekt,kod) local czy_szablon=(obiekt=="SZABLON");local czy_znacznik=(obiekt=="ZNACZNIK"); local wynik=SpecjalneWprowadzeniaTekstu(szablon,obiekt,kod,czy_szablon,czy_znacznik,true, function(parametr) parametr=mw.ustring.gsub(parametr,"\n"," "); return "\n"..parametr.."\n "; end, function(nazwa,zawartosc,atrybuty) if((zawartosc)and(nazwa))then local poziom=stronicowyparser_rozdzialy_modul.HnNumerWprowadzeniaTekstu(nazwa,atrybuty); zawartosc=mw.ustring.gsub(zawartosc,"\n"," "); local poziom_rowna=mw.ustring.rep("=",poziom); return "\n"..poziom_rowna..zawartosc..poziom_rowna.."\n "; end; end); if(wynik)then return wynik;end; return nil; end); end; local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu); local numeracja; ---- local KtorySzablonMaZwracacKategorieNaglowek=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[1] or nil; local KtorySzablonMaZwracacKategorieTekst=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[2] or nil; local CzyJestTakiProblemJakoElementTablicy=KtorySzablonMaZwracacKategorie and KtorySzablonMaZwracacKategorie[3] or nil; ---- local function SzablonNaglowkujWNaglowkuRozdzialu(szablon,obiekt,kod,powtorka,parametry_wywolania_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania) --local nazwa_szablonu=szablonowe_modul["NazwaSzablonuWywołania"](szablon); local jest_naglowkuj_w_tekscie_rozdzialu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania]; if(jest_naglowkuj_w_tekscie_rozdzialu)then --local parametry_wywolania_szablonu_naglowek,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); local numeracja_aktualna=parametry_wywolania_szablonu["uchwyt"] or parametry_wywolania_szablonu[1]; ---- if(numeracja_aktualna)then local wartosc_elementu=jest_naglowkuj_w_tekscie_rozdzialu[1]; local lista_dwuelementowa=tabela_elementow_strony_kodow and stronicowyparser_zbieraniedanychstron_modul.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,kod) or nil; if(not lista_dwuelementowa)then numeracja_aktualna=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(numeracja_aktualna,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or numeracja_aktualna; numeracja_aktualna=html_modul.DecodeHtml(numeracja_aktualna,true); lista_dwuelementowa={}; lista_dwuelementowa[1]=numeracja_aktualna; else numeracja_aktualna=lista_dwuelementowa[1]; end; if(numeracja_aktualna~="")then table.insert(numeracja,lista_dwuelementowa); end; ---- if(powtorka>=1)then if(self.tabela_listy_danych_analizy_ksiazki)then KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu_wywolania); end; end; elseif(powtorka>=1)then KtorySzablonMaZwracacKategorieNaglowek(nil,nazwa_szablonu_wywolania); end; powtorka=powtorka+1; end; return powtorka; end; ---- local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; ---- local function SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod) if(obiekt=="SZABLON")then return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- local jest_naglowkuj_w_tekscie_rozdzialu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu]; if(jest_naglowkuj_w_tekscie_rozdzialu)then local numeracja=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; if((numeracja)and(numeracja~=""))then local wartosc_elementu=jest_naglowkuj_w_tekscie_rozdzialu[1]; local lista_dwuelementowa=tabela_elementow_strony_kodow and stronicowyparser_zbieraniedanychstron_modul.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,kod) or nil; if(not lista_dwuelementowa)then numeracja=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(numeracja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or kod_uchwytu; numeracja=html_modul.DecodeHtml(numeracja,true); else numeracja=lista_dwuelementowa[1]; end; end; KtorySzablonMaZwracacKategorieTekst(numeracja,nazwa_szablonu); return true; end; return false; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return false; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return false; end); end; return false; end; local RefPrzypisowy=function(obiekt,kod) return "&#91;"..((obiekt~="") and (obiekt.." ") or "")..kod.."&#93;"; end; local specjalne_modul=require("Module:Specjalne"); local nazwa_strony_z_naglowkami=((not tylko_naglowek)and(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "") or ""); for naglowek_tab,text_rozdzialu,poziom_rozdzialu in iterator do local naglowek=naglowek_tab[1]; numeracja={}; if(czy_kodowanie)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(text_rozdzialu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do local wynik=SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod); if(wynik)then break;end; end; end; local powtorka=0; local czy_szablony=nil; local czy_indeksowanie=nil; local function SzablonyWywolywane(szablon,obiekt,kod) return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,obiekt,kod,powtorka,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow); local czy_naglowek=tab_naglowki[nazwa_szablonu]; local czy_link;local nazwa_link; local function TempFunc(nazwa_szablonu) if(not czy_link)then czy_link=true; local str=mw.ustring.match(nazwa_szablonu,"^Link") nazwa_link=str and true or false; return nazwa_link; end; return nazwa_link; end; local czy_tak_naglowki=((czy_naglowek)and(TempFunc(nazwa_szablonu)and true or false) or ((not czy_naglowek)and nil)); if((czy_tak_naglowki~=nil)and(czy_tak_naglowki==false))then return ""; elseif((tab_szablony[nazwa_szablonu])or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])or(tab_szablony_inne_szablony_stron_zbiorczych[nazwa_szablonu])or((czy_tak_naglowki~=nil)and(czy_tak_naglowki==true)))then czy_szablony=true; local nazwa_link=TempFunc(nazwa_szablonu); if((not czy_artykul_korzystany)or(nazwa_link))then local nazwa_link=TempFunc(nazwa_szablonu); if(nazwa_link)then tabela_parametrow_szablonu[2]=tabela_parametrow_szablonu[2] or nazwa_artykulu; tabela_parametrow_szablonu[3]=tabela_parametrow_szablonu[3] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki); end; tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")); if((self)and((self.tabela_listy_danych_analizy_ksiazki)))then local czy_link_lub_pobierz; if(czy_tak_naglowki==nil)then czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz"); else czy_link_lub_pobierz=czy_tak_naglowki or mw.ustring.match(nazwa_szablonu,"^Pobierz"); end; if(czy_link_lub_pobierz)then stronicowyparser_zbieraniedanychstron_modul.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); else stronicowyparser_zbieraniedanychstron_modul.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu); end; end; end; local str=szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); return str; elseif((tab_szablony_strona_start[nazwa_szablonu])or(tab_szablony_szablony_stron_zbiorczych[nazwa_szablonu]))then return ""; elseif(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])then local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego,nazwa_modulu_aktualna_czy_biezaca_szablonowa,tablica_danych_parametrow_szablonu_strony,kod); if(wynik)then return wynik;end; elseif((czy_indeksowanie)and(tab_szablony_indeksowania[nazwa_szablonu]))then return nil,true; end; return szablon; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return szablon; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return szablon; end); end; --naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny); --naglowek=mw.ustring.gsub(naglowek,"<ref>.-</ref>",""); --naglowek=Korekta(naglowek); ---naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end) local nazwa_rozdzialu_w_artykule; if(not czy_kodowanie)then nazwa_rozdzialu_w_artykule,naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,true,false); else local function SzablonyWywolywaneOgolny(naglowek) local naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=specjalne_modul["WydzielZwykłyTekst"]( { tekst=naglowek, ["nagłówek"]=true, nieklasycznie=true, kodowanie=false, ["tablica kodowania"]=tablica_analizy_obiektow_strony_dany_modul, }, function(szablon,obiekt,kod) local szablon,wynik=SzablonyWywolywane(szablon,obiekt,kod); return szablon,wynik; end, function(szablon,obiekt,kod) return czy_indeksowanie; end); return naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne; end; czy_indeksowanie=true; local Znaczniki;local SzablonyStylowe;local ZnakiSpecjalne; naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=SzablonyWywolywaneOgolny(naglowek); nazwa_rozdzialu_w_artykule=naglowek; naglowek=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) if(obiekt=="SZABLON")then return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if(tab_szablony_indeksowania[nazwa_szablonu])then return "";end; end); elseif(obiekt=="ZNACZNIK")then szablon=Znaczniki(szablon,"li"); szablon=Znaczniki(szablon,"ol"); szablon=Znaczniki(szablon,"ul"); return szablon; end; end); czy_indeksowanie=false; nazwa_rozdzialu_w_artykule=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(nazwa_rozdzialu_w_artykule,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) if(obiekt=="ATRYBUTY")then return nil,true; elseif(obiekt=="SZABLON")then szablon=SzablonyWywolywaneOgolny(szablon); return szablon; end; --szablon=Korekta(szablon); --szablon=specjalne_modul["UsuńSzablonyStylów"](szablon); --szablon=specjalne_modul["UsuńZnakiSpecjalne"](szablon); return szablon; end); nazwa_rozdzialu_w_artykule=SzablonyStylowe(nazwa_rozdzialu_w_artykule); nazwa_rozdzialu_w_artykule=ZnakiSpecjalne(nazwa_rozdzialu_w_artykule); nazwa_rozdzialu_w_artykule=Znaczniki(nazwa_rozdzialu_w_artykule); if(not czy_szablony)then nazwa_rozdzialu_w_artykule=html_modul.DecodeKoduHTMLZnaku(nazwa_rozdzialu_w_artykule); nazwa_rozdzialu_w_artykule=html_modul.EncodeSpecjalneZnakiHtml(nazwa_rozdzialu_w_artykule); end; end; nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$",""); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[_%s]+"," "); naglowek=mw.ustring.gsub(naglowek,szablonowe_modul.NormaWzoruKodowaniaTekstu("REF(%a*)","(%d+)"),function(obiekt,kod) return "<sup>"..RefPrzypisowy(obiekt,kod).."</sup>"; end); naglowek=mw.ustring.gsub(naglowek,szablonowe_modul.NormaWzoruKodowaniaTekstu("POSTMATH"),function(kod) if(not wzory_zamiast_kodow)then return szablonowe_modul[((nazwa_strony)and(nazwa_strony=="")) and "NormaKoduKodowaniaTekstu" or "NormaKoduZakodowanegoWikiTekstu"]("postMath",(mw.ustring.rep("0",math.max(8-#kod,0)))..kod); elseif(not czy_artykul_korzystany)then if(tablica_obiektow_strony_danych_kodow_specjalnych_modul)then if(tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then local kod=tonumber(kod); local szablon=tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][kod]; if(szablon)then szablon=frame:preprocess(szablon); return szablon; end; end; end end; return szablonowe_modul[czy_artykul_korzystany and "NormaKoduKodowaniaTekstu" or "NormaKoduZakodowanegoWikiTekstu"]("postMath",(mw.ustring.rep("0",math.max(8-#kod,0)))..kod); end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,szablonowe_modul.NormaWzoruKodowaniaTekstu("REF(%a*)"),function(obiekt,kod) return RefPrzypisowy(obiekt,kod); end); nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,szablonowe_modul.NormaWzoruKodowaniaTekstu("POSTMATH"),function(kod) return "";--szablonowe_modul.NormaKoduZakodowanegoHtmlTekstu("postMath",(mw.ustring.rep("0",math.max(8-#kod,0)))..kod)""; end); --nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";"); local numer_tego_samego_naglowka=1; --local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule); local numer_tego_samego_naglowka=1; for s=1,#tablica_powtarzajacych_sie_elementow,1 do local element=tablica_powtarzajacych_sie_elementow[s]; if(element==nazwa_rozdzialu_w_artykule)then numer_tego_samego_naglowka=numer_tego_samego_naglowka+1; end; end; if(numer_tego_samego_naglowka==1)then elementy_linku={nazwa_rozdzialu_w_artykule,naglowek}; else elementy_linku={nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek}; end; if((obiekty)and(numeracja))then for _,value_numeracja in ipairs(numeracja)do obiekty[#obiekty+1]={value_numeracja,{nazwa_strony_z_naglowkami,elementy_linku[1], elementy_linku[2]}}; end; end; if((poziom_rozdzialu or 0)>0)then local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu); tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule; if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={}; tablica_spisu_tresci.nazwa_strony=nazwa_strony_z_naglowkami; end; tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony}; end; end; if(czy_kodowanie)then if(czy_artykul_korzystany)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not CzyJestTakiProblemJakoElementTablicy())then local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+"); if((linia_poczatkowa)and((mw.ustring.match(linia_poczatkowa,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*\n*")) or(mw.ustring.match(linia_poczatkowa,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$*"))) )then return tablica_spisu_tresci; end; local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=[^\n]*[^%s=][^\n]*=[^%S\n]*\n") or mw.ustring.match(tekst_artykulu,"^(.-)\n=[^\n]*[^%s=][^\n]*=[^%S\n]*$") or tekst_artykulu; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_zerowy,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do local wynik=SzablonNaglowkujWTekscieRozdzialu(szablon,obiekt,kod); if(wynik)then break;end; end; end; end; end; return tablica_spisu_tresci; end; return p; pve25zannoyqdg7hx07mv9k2yp90pru Wikibooks:Moduły/Nazwy/Tom I 4 62922 555654 553204 2026-09-11T06:34:22Z Persino 2851 /* Funkcja biblioteczna */ 555654 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje nazw nazwy przestrzeni nazw == Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw. === {{Code|m.Np}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jej id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jej parametr, tylko przestrzeny w nim występuje, jej element jest podobny do jej wersji bibliotecznej, opisywanej funkcji. Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}} {{OpisParametrów | 1 = Parametry podstawowe | nagłówek1=tak | 2 = {{Code|nazwa}} lub {{Code|1}} | _2 = Nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni. | 3 = {{Parametr|wyspecjalizowana|tak}} | _3 = Tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, | 4 = Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:| nagłówek4=tak | 5 = {{Code|przedmiotowa}} | _5 = Zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste. | 6 = {{Code|dyskusja}} | _6 = Zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste. | 7 = {{Code|kanoniczna}} | _7 = Zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską. | 8 = {{Code|z myślnikami dolnymi}} | _8 = Zamienia spację w nazwach przestrzenie nazw na dolne myślniki, | 9 = {{Code|wyświetlana}} | _9 = Ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana. | 10 = {{Code|link}} | _10 = Drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jej {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}}. | 11 = {{Code|id}} | _11 = wyświetla id danej przestrzeni nazw. | 12 = {{Code|nazwij projektem}} | _12 = Powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}}. | 13 = {{Code|nazwij dyskusją projektu}} | _13 = powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}}. | 14 = inne zmienne niepuste:|nagłówek14=tak | 15 = {{Code|istnieje}} | _15 = zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość. | 16 = {{Code|wynik błędu nietekstowy}} | _16 = używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana. | 17 = Zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:|nagłówek17=tak | 18 = {{Code|uchwyt}} | _18 = Zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw. }} ===== Przykłady używania ===== ====== Podstawowe wywołanie ====== Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, }; </syntaxhighlight> Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}. Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej. Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowi niesformatowanemu: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", }; -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", }; </syntaxhighlight> ====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ====== Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", }; </syntaxhighlight> * Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw. Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Szablon": local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", }; </syntaxhighlight> * Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów. ====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ====== Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym. Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}. Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw. Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną. <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", }; -- Gdy prrzestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", }; ---- Zwraca wartość: szablon "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",}; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",}; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",}; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Nazwy przestrzeni z myślnikami dolnymi ====== Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przestrzeni nazw ====== Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}. Przykłady jak jest, jest powiedziane: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", }; ---- Zwraca wartość: "": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", }; ---- Zwraca wartość: "(główna)": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", }; ---- Zwraca wartość: "(main)": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", }; </syntaxhighlight> Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym. ====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ====== Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}). <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przykłady funkcji w wyniku są w przykładach szablonowych: # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}} ====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ====== Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", }; </syntaxhighlight> ====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jej dyskusji, z kanonicznej lub nie, przestrzeni nazw ====== Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Projekt": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Dyskusja projektu": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", }; </syntaxhighlight> ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; </syntaxhighlight> ====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ====== Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami: <syntaxhighlight lang="lua"> local uchwyt_1 = mw.site.namespaces["Szablon"]; local uchwyt_2 = mw.site.namespaces["Template"]; local uchwyt_3 = mw.site.namespaces[10]; </syntaxhighlight> Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jej wersji pseudo tej tabeli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", }; local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", }; local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. === {{Code|m.NpDane}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje. Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty: * Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}: ** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów, ** {{Code|kod projektu}} - kod projektu danego wiki, ** {{Code|kod języka}} - kod języka danego wiki, * {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej, * {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jej nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}. Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem. ===== Używanie kluczy projektu, kodów projektu i kodów języka ===== Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości. ====== Użycie różnych kodów i ich równoważność ====== Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... }; </syntaxhighlight> * Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}). W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... }; local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... }; </syntaxhighlight> Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", }; </syntaxhighlight> 0 Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu): Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jej wersja wyświetlana posiada za to ciąg niepusty, o jej wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}. ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}: Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}. ===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi ===== ====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ====== Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jej idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> Identyfikator przestrzeni nazw tłumaczymy na jego nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> ====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ====== Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku): * Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> * Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie # {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} Przykłady przy użyciu identyfikatorów: # {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} ===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku ===== Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetlaną, np. w postaci: {{Np|(main)|link=tak}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> ---- Przykłady funkcji w wyniku są: # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- A dla projektu niemającej wersji polskiej, np. tylko wersję angielską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}} ===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame ===== * Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji. Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy prrzestrzeń nazw jest w postaci jej numeru id ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dla języka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej): <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwą niekanoniczną: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", } ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Nazwy przestrzeni z myślnikami dolnymi ===== Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw ===== Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Wikipedia": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja Wikipedii": local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Różne wersje sprawdzania istnienia przestrzeni nazw ===== ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jej wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie: <syntaxhighlight lang="lua">0 local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru. ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "". A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji. ===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów ===== Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany. Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}. == Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} == === {{Code|m.NAZWASERWISU()}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. * Parametry podstawowe ** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, * Inne parametry * Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}. Wszystkie powyższe zmienne są opcjonalne ===== Opis parametrów użytych razem z parametrem {{Code|link}} ===== Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}. * Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. ===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) ===== Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jej originalnej nazwy za nim. ====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do polskiego projektu {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|z=a}}}} ====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}} ===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISSU{}; }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", }; local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", }; local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", }; local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", }; local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS}}}} → {{Tt|{{NS}}}}, * {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}. ===== Wywołanie szablonu dotyczące innego projektu niż ten ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Tutaj linkujemy do Wikiźródeł do jej strony głównej local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", }; --- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", }; -- Tutaj linkujemy do Wikibooksa do jej strony głównej w jakieś jej wersji językowej local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; -- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}. ===== Wywołania szablonu z nazwą linku danej wiki ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę linku przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w języku danej wiki, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", }; local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}. ===== Wywołanie szablonu z podaną nazwą linku ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", }; local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}}, * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ghc1lcaouf6mlvdf0vef727ctc186mb 555655 555654 2026-09-11T06:37:34Z Persino 2851 /* Funkcja biblioteczna */ 555655 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje nazw nazwy przestrzeni nazw == Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw. === {{Code|m.Np}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jej id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jej parametr, tylko przestrzeny w nim występuje, jej element jest podobny do jej wersji bibliotecznej, opisywanej funkcji. Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}} {{OpisParametrów | 1 = Parametry podstawowe | nagłówek1=tak | 2 = {{Code|nazwa}} lub {{Code|1}} | _2 = Nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni. | 3 = {{Parametr|wyspecjalizowana|tak}} | _3 = Tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, | 4 = Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:| nagłówek4=tak | 5 = {{Code|przedmiotowa}} | _5 = Zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste. | 6 = {{Code|dyskusja}} | _6 = Zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste. | 7 = {{Code|kanoniczna}} | _7 = Zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską. | 8 = {{Code|z myślnikami dolnymi}} | _8 = Zamienia spację w nazwach przestrzenie nazw na dolne myślniki, | 9 = {{Code|wyświetlana}} | _9 = Ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana. | 10 = {{Code|link}} | _10 = Drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jej {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}}. | 11 = {{Code|id}} | _11 = wyświetla id danej przestrzeni nazw. | 12 = {{Code|nazwij projektem}} | _12 = Powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}}. | 13 = {{Code|nazwij dyskusją projektu}} | _13 = powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}}. | 14 = inne zmienne niepuste:|nagłówek14=tak | 15 = {{Code|istnieje}} | _15 = zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość. | 16 = {{Code|wynik błędu nietekstowy}} | _16 = używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana. | 17 = Zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:|nagłówek17=tak | 18 = {{Code|uchwyt}} | _18 = Zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw. }} ===== Przykłady używania ===== ====== Podstawowe wywołanie ====== Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, }; </syntaxhighlight> Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}. Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej. Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowi niesformatowanemu: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", }; -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", }; </syntaxhighlight> ====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ====== Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", }; </syntaxhighlight> * Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw. Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Szablon": local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", }; </syntaxhighlight> * Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów. ====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ====== Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym. Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}. Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw. Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną. <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", }; -- Gdy prrzestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", }; ---- Zwraca wartość: szablon "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",}; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",}; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",}; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Nazwy przestrzeni z myślnikami dolnymi ====== Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przestrzeni nazw ====== Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}. Przykłady jak jest, jest powiedziane: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", }; ---- Zwraca wartość: "": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", }; ---- Zwraca wartość: "(główna)": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", }; ---- Zwraca wartość: "(main)": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", }; </syntaxhighlight> Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym. ====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ====== Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}). <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przykłady funkcji w wyniku są w przykładach szablonowych: # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}} ====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ====== Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", }; </syntaxhighlight> ====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jej dyskusji, z kanonicznej lub nie, przestrzeni nazw ====== Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Projekt": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Dyskusja projektu": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", }; </syntaxhighlight> ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; </syntaxhighlight> ====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ====== Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami: <syntaxhighlight lang="lua"> local uchwyt_1 = mw.site.namespaces["Szablon"]; local uchwyt_2 = mw.site.namespaces["Template"]; local uchwyt_3 = mw.site.namespaces[10]; </syntaxhighlight> Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jej wersji pseudo tej tabeli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", }; local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", }; local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. === {{Code|m.NpDane}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje. Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty: {{OpisParametrów | 1 = Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:|nagłówek1=tak | 2 = {{Code|klucz projektu}} | _2 = Kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów. | 3 = {{Code|kod projektu}} | _3 = Kod projektu danego wiki. | 4 = {{Code|kod języka}} | _4 = kod języka danego wiki. | 5 = {{Code|po polsku}} |_5 = Tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej. | 6 = {{Code|awaryjnie}} | _6 = Za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jej nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}. }} Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem. ===== Używanie kluczy projektu, kodów projektu i kodów języka ===== Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości. ====== Użycie różnych kodów i ich równoważność ====== Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... }; </syntaxhighlight> * Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}). W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... }; local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... }; </syntaxhighlight> Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", }; </syntaxhighlight> 0 Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu): Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jej wersja wyświetlana posiada za to ciąg niepusty, o jej wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}. ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}: Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}. ===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi ===== ====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ====== Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jej idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> Identyfikator przestrzeni nazw tłumaczymy na jego nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> ====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ====== Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku): * Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> * Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie # {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} Przykłady przy użyciu identyfikatorów: # {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} ===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku ===== Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetlaną, np. w postaci: {{Np|(main)|link=tak}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> ---- Przykłady funkcji w wyniku są: # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- A dla projektu niemającej wersji polskiej, np. tylko wersję angielską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}} ===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame ===== * Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji. Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy prrzestrzeń nazw jest w postaci jej numeru id ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dla języka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej): <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwą niekanoniczną: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", } ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Nazwy przestrzeni z myślnikami dolnymi ===== Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw ===== Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Wikipedia": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja Wikipedii": local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Różne wersje sprawdzania istnienia przestrzeni nazw ===== ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jej wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie: <syntaxhighlight lang="lua">0 local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru. ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "". A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji. ===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów ===== Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany. Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}. == Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} == === {{Code|m.NAZWASERWISU()}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. * Parametry podstawowe ** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, * Inne parametry * Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}. Wszystkie powyższe zmienne są opcjonalne ===== Opis parametrów użytych razem z parametrem {{Code|link}} ===== Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}. * Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. ===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) ===== Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jej originalnej nazwy za nim. ====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do polskiego projektu {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|z=a}}}} ====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}} ===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISSU{}; }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", }; local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", }; local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", }; local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", }; local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS}}}} → {{Tt|{{NS}}}}, * {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}. ===== Wywołanie szablonu dotyczące innego projektu niż ten ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Tutaj linkujemy do Wikiźródeł do jej strony głównej local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", }; --- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", }; -- Tutaj linkujemy do Wikibooksa do jej strony głównej w jakieś jej wersji językowej local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; -- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}. ===== Wywołania szablonu z nazwą linku danej wiki ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę linku przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w języku danej wiki, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", }; local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}. ===== Wywołanie szablonu z podaną nazwą linku ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", }; local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}}, * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> tdvu1hv9sk40h9forg33dxslcjj5hjo 555656 555655 2026-09-11T06:44:19Z Persino 2851 /* Funkcja biblioteczna */ 555656 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje nazw nazwy przestrzeni nazw == Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw. === {{Code|m.Np}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jej id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jej parametr, tylko przestrzeny w nim występuje, jej element jest podobny do jej wersji bibliotecznej, opisywanej funkcji. Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}} {{OpisParametrów | 1 = Parametry podstawowe | nagłówek1=tak | 2 = {{Code|nazwa}} lub {{Code|1}} | _2 = Nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni. | 3 = {{Parametr|wyspecjalizowana|tak}} | _3 = Tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, | 4 = Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:| nagłówek4=tak | 5 = {{Code|przedmiotowa}} | _5 = Zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste. | 6 = {{Code|dyskusja}} | _6 = Zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste. | 7 = {{Code|kanoniczna}} | _7 = Zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską. | 8 = {{Code|z myślnikami dolnymi}} | _8 = Zamienia spację w nazwach przestrzenie nazw na dolne myślniki, | 9 = {{Code|wyświetlana}} | _9 = Ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana. | 10 = {{Code|link}} | _10 = Drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jej {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}}. | 11 = {{Code|id}} | _11 = wyświetla id danej przestrzeni nazw. | 12 = {{Code|nazwij projektem}} | _12 = Powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}}. | 13 = {{Code|nazwij dyskusją projektu}} | _13 = powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}}. | 14 = inne zmienne niepuste:|nagłówek14=tak | 15 = {{Code|istnieje}} | _15 = zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość. | 16 = {{Code|wynik błędu nietekstowy}} | _16 = używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana. | 17 = Zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:|nagłówek17=tak | 18 = {{Code|uchwyt}} | _18 = Zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw. }} ===== Przykłady używania ===== ====== Podstawowe wywołanie ====== Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, }; </syntaxhighlight> Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}. Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej. Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowi niesformatowanemu: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", }; -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", }; </syntaxhighlight> ====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ====== Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", }; </syntaxhighlight> * Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw. Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Szablon": local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", }; </syntaxhighlight> * Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów. ====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ====== Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym. Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}. Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw. Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną. <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", }; -- Gdy prrzestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", }; ---- Zwraca wartość: szablon "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",}; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",}; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",}; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Nazwy przestrzeni z myślnikami dolnymi ====== Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przestrzeni nazw ====== Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}. Przykłady jak jest, jest powiedziane: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", }; ---- Zwraca wartość: "": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", }; ---- Zwraca wartość: "(główna)": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", }; ---- Zwraca wartość: "(main)": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", }; </syntaxhighlight> Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym. ====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ====== Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}). <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przykłady funkcji w wyniku są w przykładach szablonowych: # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}} ====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ====== Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", }; </syntaxhighlight> ====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jej dyskusji, z kanonicznej lub nie, przestrzeni nazw ====== Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Projekt": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Dyskusja projektu": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", }; </syntaxhighlight> ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; </syntaxhighlight> ====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ====== Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami: <syntaxhighlight lang="lua"> local uchwyt_1 = mw.site.namespaces["Szablon"]; local uchwyt_2 = mw.site.namespaces["Template"]; local uchwyt_3 = mw.site.namespaces[10]; </syntaxhighlight> Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jej wersji pseudo tej tabeli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", }; local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", }; local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. === {{Code|m.NpDane}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje. Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty: {{OpisParametrów | 1 = Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:|nagłówek1=tak | 2 = {{Code|klucz projektu}} | _2 = Kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów. | 3 = {{Code|kod projektu}} | _3 = Kod projektu danego wiki. | 4 = {{Code|kod języka}} | _4 = kod języka danego wiki. | 5 = {{Code|po polsku}} |_5 = Tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej. | 6 = {{Code|awaryjnie}} | _6 = Za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jej nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}. }} Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem. ===== Używanie kluczy projektu, kodów projektu i kodów języka ===== Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości. ====== Użycie różnych kodów i ich równoważność ====== Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... }; </syntaxhighlight> * Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}). W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... }; local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... }; </syntaxhighlight> Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", }; </syntaxhighlight> 0 Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu): Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jej wersja wyświetlana posiada za to ciąg niepusty, o jej wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}. ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}: Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}. ===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi ===== ====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ====== Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jej idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> Identyfikator przestrzeni nazw tłumaczymy na jego nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> ====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ====== Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku): * Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> * Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie # {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} Przykłady przy użyciu identyfikatorów: # {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} ===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku ===== Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetlaną, np. w postaci: {{Np|(main)|link=tak}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> ---- Przykłady funkcji w wyniku są: # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- A dla projektu niemającej wersji polskiej, np. tylko wersję angielską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}} ===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame ===== * Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji. Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy prrzestrzeń nazw jest w postaci jej numeru id ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dla języka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej): <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwą niekanoniczną: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", } ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Nazwy przestrzeni z myślnikami dolnymi ===== Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw ===== Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Wikipedia": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja Wikipedii": local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Różne wersje sprawdzania istnienia przestrzeni nazw ===== ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jej wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie: <syntaxhighlight lang="lua">0 local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru. ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "". A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji. ===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów ===== Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany. Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}. == Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} == === {{Code|m.NAZWASERWISU()}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. {{OpisParametrów | 1 = Parametry podstawowe...| nagłówek1=tak | 2 = {{Parametr|wyspecjalizowana|tak}} | _2 = tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, | 3 = Inne parametry...| nagłówek3=tak | 4 = Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.|nagłówek4=tak | 5 = Wszystkie powyższe zmienne są opcjonalne|nagłówek5=tak }} ===== Opis parametrów użytych razem z parametrem {{Code|link}} ===== Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}. {{OpisParametrów | 1 = Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.|nagłówek1=tak }} ===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) ===== {{OpisParametrów | 1 = Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w nie podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jej originalnej nazwy za nim.|nagłówek1=tak }} ====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do polskiego projektu {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|z=a}}}} ====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}} ===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISSU{}; }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", }; local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", }; local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", }; local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", }; local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS}}}} → {{Tt|{{NS}}}}, * {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}. ===== Wywołanie szablonu dotyczące innego projektu niż ten ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Tutaj linkujemy do Wikiźródeł do jej strony głównej local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", }; --- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", }; -- Tutaj linkujemy do Wikibooksa do jej strony głównej w jakieś jej wersji językowej local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; -- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}. ===== Wywołania szablonu z nazwą linku danej wiki ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę linku przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w języku danej wiki, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", }; local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}. ===== Wywołanie szablonu z podaną nazwą linku ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", }; local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}}, * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> omnix0hkgu0j6l7c8u2uhre10kum9ao 555657 555656 2026-09-11T06:45:21Z Persino 2851 /* Funkcja biblioteczna */ 555657 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje nazw nazwy przestrzeni nazw == Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw. === {{Code|m.Np}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jej id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jej parametr, tylko przestrzeny w nim występuje, jej element jest podobny do jej wersji bibliotecznej, opisywanej funkcji. Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}} {{OpisParametrów | 1 = Parametry podstawowe | nagłówek1=tak | 2 = {{Code|nazwa}} lub {{Code|1}} | _2 = Nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni. | 3 = {{Parametr|wyspecjalizowana|tak}} | _3 = Tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, | 4 = Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:| nagłówek4=tak | 5 = {{Code|przedmiotowa}} | _5 = Zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste. | 6 = {{Code|dyskusja}} | _6 = Zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste. | 7 = {{Code|kanoniczna}} | _7 = Zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską. | 8 = {{Code|z myślnikami dolnymi}} | _8 = Zamienia spację w nazwach przestrzenie nazw na dolne myślniki, | 9 = {{Code|wyświetlana}} | _9 = Ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana. | 10 = {{Code|link}} | _10 = Drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jej {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}}. | 11 = {{Code|id}} | _11 = wyświetla id danej przestrzeni nazw. | 12 = {{Code|nazwij projektem}} | _12 = Powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}}. | 13 = {{Code|nazwij dyskusją projektu}} | _13 = powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}}. | 14 = inne zmienne niepuste:|nagłówek14=tak | 15 = {{Code|istnieje}} | _15 = zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość. | 16 = {{Code|wynik błędu nietekstowy}} | _16 = używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana. | 17 = Zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:|nagłówek17=tak | 18 = {{Code|uchwyt}} | _18 = Zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw. }} ===== Przykłady używania ===== ====== Podstawowe wywołanie ====== Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, }; </syntaxhighlight> Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}. Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej. Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowi niesformatowanemu: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", }; -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", }; </syntaxhighlight> ====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ====== Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", }; </syntaxhighlight> * Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw. Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Szablon": local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", }; </syntaxhighlight> * Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów. ====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ====== Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym. Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}. Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw. Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną. <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", }; -- Gdy prrzestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", }; ---- Zwraca wartość: szablon "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",}; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",}; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",}; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Nazwy przestrzeni z myślnikami dolnymi ====== Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przestrzeni nazw ====== Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}. Przykłady jak jest, jest powiedziane: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", }; ---- Zwraca wartość: "": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", }; ---- Zwraca wartość: "(główna)": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", }; ---- Zwraca wartość: "(main)": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", }; </syntaxhighlight> Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym. ====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ====== Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}). <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przykłady funkcji w wyniku są w przykładach szablonowych: # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}} ====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ====== Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", }; </syntaxhighlight> ====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jej dyskusji, z kanonicznej lub nie, przestrzeni nazw ====== Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Projekt": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Dyskusja projektu": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", }; </syntaxhighlight> ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; </syntaxhighlight> ====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ====== Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami: <syntaxhighlight lang="lua"> local uchwyt_1 = mw.site.namespaces["Szablon"]; local uchwyt_2 = mw.site.namespaces["Template"]; local uchwyt_3 = mw.site.namespaces[10]; </syntaxhighlight> Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jej wersji pseudo tej tabeli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", }; local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", }; local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. === {{Code|m.NpDane}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje. Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty: {{OpisParametrów | 1 = Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:|nagłówek1=tak | 2 = {{Code|klucz projektu}} | _2 = Kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów. | 3 = {{Code|kod projektu}} | _3 = Kod projektu danego wiki. | 4 = {{Code|kod języka}} | _4 = kod języka danego wiki. | 5 = {{Code|po polsku}} |_5 = Tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej. | 6 = {{Code|awaryjnie}} | _6 = Za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jej nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}. | 7 = Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.|nagłówek7=tak }} ===== Używanie kluczy projektu, kodów projektu i kodów języka ===== Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości. ====== Użycie różnych kodów i ich równoważność ====== Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... }; </syntaxhighlight> * Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}). W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... }; local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... }; </syntaxhighlight> Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", }; </syntaxhighlight> 0 Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu): Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jej wersja wyświetlana posiada za to ciąg niepusty, o jej wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}. ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}: Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}. ===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi ===== ====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ====== Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jej idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> Identyfikator przestrzeni nazw tłumaczymy na jego nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> ====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ====== Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku): * Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> * Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie # {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} Przykłady przy użyciu identyfikatorów: # {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} ===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku ===== Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetlaną, np. w postaci: {{Np|(main)|link=tak}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> ---- Przykłady funkcji w wyniku są: # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- A dla projektu niemającej wersji polskiej, np. tylko wersję angielską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}} ===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame ===== * Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji. Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy prrzestrzeń nazw jest w postaci jej numeru id ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dla języka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej): <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwą niekanoniczną: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", } ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Nazwy przestrzeni z myślnikami dolnymi ===== Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw ===== Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Wikipedia": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja Wikipedii": local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Różne wersje sprawdzania istnienia przestrzeni nazw ===== ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jej wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie: <syntaxhighlight lang="lua">0 local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru. ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "". A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji. ===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów ===== Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany. Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}. == Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} == === {{Code|m.NAZWASERWISU()}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. {{OpisParametrów | 1 = Parametry podstawowe...| nagłówek1=tak | 2 = {{Parametr|wyspecjalizowana|tak}} | _2 = tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, | 3 = Inne parametry...| nagłówek3=tak | 4 = Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.|nagłówek4=tak | 5 = Wszystkie powyższe zmienne są opcjonalne|nagłówek5=tak }} ===== Opis parametrów użytych razem z parametrem {{Code|link}} ===== Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}. {{OpisParametrów | 1 = Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.|nagłówek1=tak }} ===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) ===== {{OpisParametrów | 1 = Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w nie podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jej originalnej nazwy za nim.|nagłówek1=tak }} ====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do polskiego projektu {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|z=a}}}} ====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}} ===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISSU{}; }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", }; local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", }; local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", }; local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", }; local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS}}}} → {{Tt|{{NS}}}}, * {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}. ===== Wywołanie szablonu dotyczące innego projektu niż ten ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Tutaj linkujemy do Wikiźródeł do jej strony głównej local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", }; --- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", }; -- Tutaj linkujemy do Wikibooksa do jej strony głównej w jakieś jej wersji językowej local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; -- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}. ===== Wywołania szablonu z nazwą linku danej wiki ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę linku przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w języku danej wiki, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", }; local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}. ===== Wywołanie szablonu z podaną nazwą linku ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", }; local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}}, * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 5ig2jal2l7hsl4ucv5pvbpxl3a557dx 555661 555657 2026-09-11T07:02:01Z Persino 2851 /* Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku */ 555661 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje nazw nazwy przestrzeni nazw == Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw. === {{Code|m.Np}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jej id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jej parametr, tylko przestrzeny w nim występuje, jej element jest podobny do jej wersji bibliotecznej, opisywanej funkcji. Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}} {{OpisParametrów | 1 = Parametry podstawowe | nagłówek1=tak | 2 = {{Code|nazwa}} lub {{Code|1}} | _2 = Nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni. | 3 = {{Parametr|wyspecjalizowana|tak}} | _3 = Tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, | 4 = Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:| nagłówek4=tak | 5 = {{Code|przedmiotowa}} | _5 = Zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste. | 6 = {{Code|dyskusja}} | _6 = Zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste. | 7 = {{Code|kanoniczna}} | _7 = Zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską. | 8 = {{Code|z myślnikami dolnymi}} | _8 = Zamienia spację w nazwach przestrzenie nazw na dolne myślniki, | 9 = {{Code|wyświetlana}} | _9 = Ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana. | 10 = {{Code|link}} | _10 = Drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jej {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}}. | 11 = {{Code|id}} | _11 = wyświetla id danej przestrzeni nazw. | 12 = {{Code|nazwij projektem}} | _12 = Powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}}. | 13 = {{Code|nazwij dyskusją projektu}} | _13 = powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}}. | 14 = inne zmienne niepuste:|nagłówek14=tak | 15 = {{Code|istnieje}} | _15 = zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość. | 16 = {{Code|wynik błędu nietekstowy}} | _16 = używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana. | 17 = Zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:|nagłówek17=tak | 18 = {{Code|uchwyt}} | _18 = Zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw. }} ===== Przykłady używania ===== ====== Podstawowe wywołanie ====== Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, }; </syntaxhighlight> Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}. Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej. Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowi niesformatowanemu: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", }; -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", }; </syntaxhighlight> ====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ====== Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", }; </syntaxhighlight> * Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw. Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Szablon": local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", }; </syntaxhighlight> * Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów. ====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ====== Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym. Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}. Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw. Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną. <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", }; -- Gdy prrzestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", }; ---- Zwraca wartość: szablon "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",}; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",}; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",}; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Nazwy przestrzeni z myślnikami dolnymi ====== Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przestrzeni nazw ====== Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}. Przykłady jak jest, jest powiedziane: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", }; ---- Zwraca wartość: "": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", }; ---- Zwraca wartość: "(główna)": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", }; ---- Zwraca wartość: "(main)": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", }; </syntaxhighlight> Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym. ====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ====== Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}). <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przykłady funkcji w wyniku są w przykładach szablonowych: # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}} ====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ====== Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", }; </syntaxhighlight> ====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jej dyskusji, z kanonicznej lub nie, przestrzeni nazw ====== Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Projekt": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Dyskusja projektu": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", }; </syntaxhighlight> ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; </syntaxhighlight> ====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ====== Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami: <syntaxhighlight lang="lua"> local uchwyt_1 = mw.site.namespaces["Szablon"]; local uchwyt_2 = mw.site.namespaces["Template"]; local uchwyt_3 = mw.site.namespaces[10]; </syntaxhighlight> Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jej wersji pseudo tej tabeli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", }; local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", }; local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. === {{Code|m.NpDane}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje. Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty: {{OpisParametrów | 1 = Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:|nagłówek1=tak | 2 = {{Code|klucz projektu}} | _2 = Kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów. | 3 = {{Code|kod projektu}} | _3 = Kod projektu danego wiki. | 4 = {{Code|kod języka}} | _4 = kod języka danego wiki. | 5 = {{Code|po polsku}} |_5 = Tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej. | 6 = {{Code|awaryjnie}} | _6 = Za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jej nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}. | 7 = Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.|nagłówek7=tak }} ===== Używanie kluczy projektu, kodów projektu i kodów języka ===== Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości. ====== Użycie różnych kodów i ich równoważność ====== Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... }; </syntaxhighlight> * Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}). W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... }; local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... }; </syntaxhighlight> Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", }; </syntaxhighlight> 0 Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu): Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jej wersja wyświetlana posiada za to ciąg niepusty, o jej wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}. ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}: Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}. ===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi ===== ====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ====== Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jej idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> Identyfikator przestrzeni nazw tłumaczymy na jego nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> ====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ====== Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku): * Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> * Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie # {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} Przykłady przy użyciu identyfikatorów: # {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} ===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku ===== Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeśli mamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetlaną, np. w postaci: {{Np|(main)|link=tak}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> ---- Przykłady funkcji w wyniku są: # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- A dla projektu niemającej wersji polskiej, np. tylko wersję angielską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}} ===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame ===== * Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji. Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy prrzestrzeń nazw jest w postaci jej numeru id ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dla języka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej): <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwą niekanoniczną: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", } ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Nazwy przestrzeni z myślnikami dolnymi ===== Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw ===== Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Wikipedia": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja Wikipedii": local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Różne wersje sprawdzania istnienia przestrzeni nazw ===== ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jej wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie: <syntaxhighlight lang="lua">0 local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru. ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "". A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji. ===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów ===== Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany. Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}. == Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} == === {{Code|m.NAZWASERWISU()}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. {{OpisParametrów | 1 = Parametry podstawowe...| nagłówek1=tak | 2 = {{Parametr|wyspecjalizowana|tak}} | _2 = tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, | 3 = Inne parametry...| nagłówek3=tak | 4 = Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.|nagłówek4=tak | 5 = Wszystkie powyższe zmienne są opcjonalne|nagłówek5=tak }} ===== Opis parametrów użytych razem z parametrem {{Code|link}} ===== Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}. {{OpisParametrów | 1 = Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.|nagłówek1=tak }} ===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) ===== {{OpisParametrów | 1 = Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w nie podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jej originalnej nazwy za nim.|nagłówek1=tak }} ====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do polskiego projektu {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|z=a}}}} ====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}} ===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISSU{}; }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", }; local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", }; local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", }; local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", }; local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS}}}} → {{Tt|{{NS}}}}, * {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}. ===== Wywołanie szablonu dotyczące innego projektu niż ten ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Tutaj linkujemy do Wikiźródeł do jej strony głównej local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", }; --- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", }; -- Tutaj linkujemy do Wikibooksa do jej strony głównej w jakieś jej wersji językowej local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; -- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}. ===== Wywołania szablonu z nazwą linku danej wiki ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę linku przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w języku danej wiki, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", }; local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}. ===== Wywołanie szablonu z podaną nazwą linku ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", }; local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}}, * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> i28jt9yw0pay1kuz1poy13bj4l5dt6i 555666 555661 2026-09-11T07:22:01Z Persino 2851 /* Funkcja biblioteczna */ 555666 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje nazw nazwy przestrzeni nazw == Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw. === {{Code|m.Np}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jej id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jej parametr, tylko przestrzeny w nim występuje, jej element jest podobny do jej wersji bibliotecznej, opisywanej funkcji. Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}} {{OpisParametrów | 1 = Parametry podstawowe | nagłówek1=tak | 2 = {{Code|nazwa}} lub {{Code|1}} | _2 = Nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni. | 3 = {{Parametr|wyspecjalizowana|tak}} | _3 = Tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, | 4 = Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:| nagłówek4=tak | 5 = {{Code|przedmiotowa}} | _5 = Zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste. | 6 = {{Code|dyskusja}} | _6 = Zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste. | 7 = {{Code|kanoniczna}} | _7 = Zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską. | 8 = {{Code|z myślnikami dolnymi}} | _8 = Zamienia spację w nazwach przestrzenie nazw na dolne myślniki, | 9 = {{Code|wyświetlana}} | _9 = Ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana. | 10 = {{Code|link}} | _10 = Drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jej {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}}. | 11 = {{Code|id}} | _11 = wyświetla id danej przestrzeni nazw. | 12 = {{Code|nazwij projektem}} | _12 = Powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}}. | 13 = {{Code|nazwij dyskusją projektu}} | _13 = powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}}. | 14 = inne zmienne niepuste:|nagłówek14=tak | 15 = {{Code|istnieje}} | _15 = zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość. | 16 = {{Code|wynik błędu nietekstowy}} | _16 = używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana. | 17 = Zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:|nagłówek17=tak | 18 = {{Code|uchwyt}} | _18 = Zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw. }} ===== Przykłady używania ===== ====== Podstawowe wywołanie ====== Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, }; </syntaxhighlight> Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}. Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej. Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowi niesformatowanemu: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", }; -- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", }; -- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", }; </syntaxhighlight> ====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ====== Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", }; -- Uzyskujemy wartość: "Template": local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", }; </syntaxhighlight> * Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw. Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Uzyskujemy wartość: "Szablon": local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", }; </syntaxhighlight> * Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów. ====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ====== Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym. Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}. Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw. Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną. <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", }; -- Gdy prrzestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", }; ---- Zwraca wartość: szablon "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",}; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",}; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",}; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", }; -- Gdy przestrzeń nazw jest w postaci numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Nazwy przestrzeni z myślnikami dolnymi ====== Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przestrzeni nazw ====== Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}. Przykłady jak jest, jest powiedziane: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", }; ---- Zwraca wartość: "": local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", }; ---- Zwraca wartość: "(główna)": local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", }; ---- Zwraca wartość: "(main)": local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", }; </syntaxhighlight> Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym. ====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ====== Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}). <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", }; </syntaxhighlight> Przykłady funkcji w wyniku są w przykładach szablonowych: # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}} # {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}} ====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ====== Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 10: local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", }; ---- Uzyskany numer id nazwy przestrzeni nazw jest 11: local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", }; </syntaxhighlight> ====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jej dyskusji, z kanonicznej lub nie, przestrzeni nazw ====== Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Projekt": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", }; ---- Zwraca wartość: "Dyskusja projektu": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", }; </syntaxhighlight> ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", }; </syntaxhighlight> ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", }; </syntaxhighlight> ====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ====== Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami: <syntaxhighlight lang="lua"> local uchwyt_1 = mw.site.namespaces["Szablon"]; local uchwyt_2 = mw.site.namespaces["Template"]; local uchwyt_3 = mw.site.namespaces[10]; </syntaxhighlight> Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jej wersji pseudo tej tabeli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", }; local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", }; local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. === {{Code|m.NpDane}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. * Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość. ==== Funkcja biblioteczna ==== Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje. Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty: {{OpisParametrów | 1 = Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:|nagłówek1=tak | 2 = {{Code|klucz projektu}} | _2 = Kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów. | 3 = {{Code|kod projektu}} | _3 = Kod projektu danego wiki. | 4 = {{Code|kod języka}} | _4 = kod języka danego wiki. | 5 = {{Code|po polsku}} |_5 = Tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej. | 6 = {{Code|awaryjnie}} | _6 = Za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jej nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}. | 7 = Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.|nagłówek7=tak }} ===== Używanie kluczy projektu, kodów projektu i kodów języka ===== Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości. ====== Użycie różnych kodów i ich równoważność ====== Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... }; </syntaxhighlight> * Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}). W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... }; local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... }; </syntaxhighlight> Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi pustemu: "": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", }; </syntaxhighlight> 0 Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(main)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu): Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość nazwy przestrzeni głównej: "(główna)": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> ====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ====== Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", }; </syntaxhighlight> A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", }; ---- Zwraca wartość równą ciągowi niepustemu: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jej wersja wyświetlana posiada za to ciąg niepusty, o jej wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}. ====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ====== Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}: Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", }; </syntaxhighlight> Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; ---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", }; </syntaxhighlight> Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}. ===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi ===== ====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ====== Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jej idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", }; ---- Zwraca wartość: "Template": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", }; </syntaxhighlight> Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> Identyfikator przestrzeni nazw tłumaczymy na jego nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", }; </syntaxhighlight> ====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ====== Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku): * Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", }; local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> * Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", }; </syntaxhighlight> Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie # {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}} # {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} Przykłady przy użyciu identyfikatorów: # {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}} # {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}} ===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku ===== Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeśli mamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetlaną, np. w postaci: {{Np|(main)|link=tak}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", }; local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; ---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", }; </syntaxhighlight> ---- Przykłady funkcji w wyniku są: # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}} ---- ---- A dla projektu niemającej wersji polskiej, np. tylko wersję angielską: # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}} Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona: # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}} # {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}} ===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame ===== * Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji. Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwa kanoniczna ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy prrzestrzeń nazw jest w postaci jej numeru id ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", -- Gdy nazwą przestrzeni jest nazwa kanoniczna: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: ""Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dla języka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej): <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja szablonu": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Gdy nazwą przestrzeni jest nazwą niekanoniczną: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy nazwą przestrzeni jest nazwą kanoniczną: ---- Zwraca wartość: Template": local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; -- Gdy przestrzeń nazw jest w postaci jej numeru id: ---- Zwraca wartość: "Template": local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", } ---- Zwraca wartość: "Template talk": local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Nazwy przestrzeni z myślnikami dolnymi ===== Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja_szablonu": local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk";: local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Template_talk": local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw ===== Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Wikipedia": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Dyskusja Wikipedii": local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Project talk": local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> ===== Różne wersje sprawdzania istnienia przestrzeni nazw ===== ====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ====== Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jej wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie: <syntaxhighlight lang="lua">0 local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "(błąd)": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru. ====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ====== Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Zwraca wartość: "Szablon": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: "Moja przestrzeń": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; ---- Zwraca wartość: nil: local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "". A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji. ===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów ===== Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany. Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników. To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", }; local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", }; </syntaxhighlight> Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}. == Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} == === {{Code|m.NAZWASERWISU()}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. {{OpisParametrów | 1 = Parametry podstawowe...| nagłówek1=tak | 2 = {{Parametr|wyspecjalizowana|tak}} | _2 = Tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą, | 3 = Inne parametry...| nagłówek3=tak | 4 = Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.|nagłówek4=tak | 5 = Wszystkie powyższe zmienne są opcjonalne|nagłówek5=tak }} ===== Opis parametrów użytych razem z parametrem {{Code|link}} ===== Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}. {{OpisParametrów | 1 = Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.|nagłówek1=tak }} ===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) ===== {{OpisParametrów | 1 = Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w nie podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jej originalnej nazwy za nim.|nagłówek1=tak }} ====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do polskiego projektu {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|z=a}}}} ====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}} ====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ====== Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", }; </syntaxhighlight> ; Analogiczne wywołanie szablonu{{Dk}} * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}. ; Kod wywołania tych szablonów: ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}} ;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}} {{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}} ===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISSU{}; }; local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", }; local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", }; local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", }; local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", }; local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS}}}} → {{Tt|{{NS}}}}, * {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}. ===== Wywołanie szablonu dotyczące innego projektu niż ten ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); ---- Tutaj linkujemy do Wikiźródeł do jej strony głównej local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", }; --- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", }; -- Tutaj linkujemy do Wikibooksa do jej strony głównej w jakieś jej wersji językowej local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; -- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}. ===== Wywołania szablonu z nazwą linku danej wiki ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Gdy chcemy podać nazwę linku przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w języku danej wiki, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", }; local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}}, * {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}. ===== Wywołanie szablonu z podaną nazwą linku ===== ====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ====== Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", }; local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", }; local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", }; </syntaxhighlight> ====== Analogiczne wywołanie szablonu ====== * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}}, * {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}}, * {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> m8kclvndw54dlias4k6bj2i8wdl4npy Wikibooks:Moduły/Nazwy/Tom II 4 63006 555667 554197 2026-09-11T07:37:45Z Persino 2851 /* Tabela nazw i inne parametry, różnych funkcji nazw */ 555667 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Tabela nazw i inne parametry, różnych funkcji nazw == Użycie tabeli {{Code|tabela nazw}} służąca do szybszego liczenia poszczególnych funkcji nazw w module {{m|Nazwy}}: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Pełna nazwa strony: local pelna_nazwa_strony = "Project talk:Moduły/Nazwy"; -- Tabela pozwalająca szybsze liczenie parametrów nazw funkcji od tych: local tabela_nazw = {}; ---- bez tej tabeli, tez możemy liczyć, ale wtedy jest wolniejsze liczenia poszczególnych nazw przestrzeni i nazwy strony, z tą tabelą je liczymy tylko raz, a nie wiele razy bez niej. -- Liczenie nazwy przestrzeni nazw: ---- Tutaj uzyskamy "Dyskusja wikibooks": local nazwa_przestrzeni = nazwy_modul.NAZWAPRZESTRZENI(pelna_nazwa_strony,tabela_nazw); -- Liczenie nazwy strony, nie pełnej, tzn. bez nazwy przestrzeni strony ---- Tutaj uzyskamy "Moduły/Nazwy": local nazwa_strony = nazwy_modul.NAZWASTRONY(pelna_nazwa_strony,tabela_nazw); </syntaxhighlight> Dodatkowo możemy użyć też innych parametrów, jak: {{OpisParametrów | 1 = Kody różnych projektów, językowych lub nie, różnego typu|nagłówek1=tak | 2 = {{Code|klucz projektu}} | _2 = Używany zamiast {{Code|kod języka}} i {{Code|kod projektu}}, są to kod języka i projektu, oddzielone od siebie dwukropkami, | 3 = {{Code|kod języka}} | _3 = jest to pojedynczy kod języka, używany zamiast {{Code|klucz projektu}}, | 4 = {{Code|kod projektu}} | _4 = jest to pojedynczy kod projektu, używany zamiast {{Code|klucz projektu}}, | 5 = Inne parametry| nagłówek5=tak | 6 = {{Code|bez zmiany adresu}} | _6= Wartość niepusta, wtedy do liczenia nazwy przestrzeni i nazwy strony nie jest usuwana część nagłówkowa i zapytań. }} ; Oto przykłady{{Dk}} <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Pełna nazwa strony: local pelna_nazwa_strony = "Project talk:Moduły/Nazwy"; -- Tabela pozwalająca szybsze liczenie parametrów nazw funkcji od tych: local tabela_nazw_1 = {}; ---- bez tej tabeli, tez możemy liczyć, ale wtedy jest wolniejsze liczenia poszczególnych nazw przestrzeni i nazwy strony, z tą tabelą je liczymy tylko raz,a nie wiele razy bez niej. -- Liczenie nazwy przestrzeni nazw: ---- Tutaj uzyskamy "Dyskusja wikipedii": local nazwa_przestrzeni_1 = nazwy_modul.NAZWAPRZESTRZENI({ nazwa = pelna_nazwa_strony,["klucz projektu"] ="pl:w", },tabela_nazw_1); -- Liczenie nazwy strony, nie pełnej, tzn. bez nazwy przestrzeni strony ---- Tutaj uzyskamy "Moduły/Nazwy": local nazwa_strony_1 = nazwy_modul.NAZWASTRONY({ nazwa = pelna_nazwa_strony,["klucz projektu"] ="pl:w", },tabela_nazw_1); -- Liczenie nazwy przestrzeni nazw: local tabela_nazw_2 = {}; ---- Tutaj uzyskamy "Dyskusja wikipedii": local nazwa_przestrzeni_2 = nazwy_modul.NAZWAPRZESTRZENI({ nazwa = pelna_nazwa_strony, ["kod projektu"] ="w", ["kod języka"] = "pl", },tabela_nazw_2); -- Liczenie nazwy strony, nie pełnej, tzn. bez nazwy przestrzeni strony ---- Tutaj uzyskamy "Moduły/Nazwy": local nazwa_strony_2 = nazwy_modul.NAZWASTRONY({ nazwa = pelna_nazwa_strony, ["kod projektu"] ="w", ["kod języka"] = "pl", },tabela_nazw_2); </syntaxhighlight> Te funkcje wykorzystują dla projektu polskiego {{NS|l=tak|pk=d}} funkcję {{Code|{{sr|#m.Np|p=Nazwy/Tom I}}}}, a dla innych {{Code|{{sr|#m.NpDane|p=Nazwy/Tom I}}}}. Wykorzystujemy tutaj parametr {{Code|bez zmiany adresu}}: <syntaxhighlight lang="lua"> local nazwy_modul = require("Module:Nazwy"); -- Tabela pozwalająca szybsze liczenie parametrów nazw funkcji od tych: local tabela_nazw = {}; ---- bez tej tabeli, tez możemy liczyć, ale wtedy jest wolniejsze liczenia poszczególnych nazw przestrzeni i nazwy strony, z tą tabelą je liczymy tylko raz,a nie wiele razy bez niej. -- Pełna nazwa strony: local pelna_nazwa_strony_z_zapytaniem_i_naglowkiem = "Project talk:Moduły/Nazwy?parametr_1=wartosc_1&parametr_2=wartosc_2#naglowek_strony"; -- Liczenie nazwy przestrzeni nazw: ---- Tutaj uzyskamy "Dyskusja wikipedii": local nazwa_przestrzeni = nazwy_modul.NAZWAPRZESTRZENI({ nazwa = pelna_nazwa_strony_z_zapytaniem_i_naglowkiem,["klucz projektu"] ="pl:w", ["bez zmiany adresu"] = "tak", },tabela_nazw); -- Liczenie nazwy strony, nie pełnej, tzn. bez nazwy przestrzeni strony ---- Tutaj uzyskamy "Moduły/Nazwy?parametr_1=wartosc_1&parametr_2=wartosc_2#naglowek_strony": local nazwa_strony_z_zapytaniem_i_naglowkiem = nazwy_modul.NAZWASTRONY({ nazwa = pelna_nazwa_strony_z_zapytaniem_i_naglowkiem,["klucz projektu"] ="pl:w", ["bez zmiany adresu"] = "tak", },tabela_nazw); </syntaxhighlight> Funkcje nazw wykorzystują też trzeci parametr, który określa, czy ma liczyć jeszcze raz, czy kody przedstawiają przestrzeń bieżącą, tzn. parametr {{code|czy_wiki}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- czy_wiki local czy_wiki = true; -- Pełna nazwa strony: local pelna_nazwa_strony = "Project talk:Moduły/Nazwy"; -- Tabela pozwalająca szybsze liczenie parametrów nazw funkcji od tych: local tabela_nazw_1 = {}; ---- bez tej tabeli, tez możemy liczyć, ale wtedy jest wolniejsze liczenia poszczególnych nazw przestrzeni i nazwy strony, z tą tabelą je liczymy tylko raz,a nie wiele razy bez niej. -- Liczenie nazwy przestrzeni nazw: ---- Tutaj uzyskamy "Dyskusja wikipedii": local nazwa_przestrzeni_1 = nazwy_modul.NAZWAPRZESTRZENI({ nazwa = pelna_nazwa_strony,["klucz projektu"] ="pl:w", },tabela_nazw_1, czy_wiki); -- Liczenie nazwy strony, nie pełnej, tzn. bez nazwy przestrzeni strony ---- Tutaj uzyskamy "Moduły/Nazwy": local nazwa_strony_1 = nazwy_modul.NAZWASTRONY({ nazwa = pelna_nazwa_strony,["klucz projektu"] ="pl:w", },tabela_nazw_1, czy_wiki); -- Liczenie nazwy przestrzeni nazw: local tabela_nazw_2 = {}; ---- Tutaj uzyskamy "Dyskusja wikipedii": local nazwa_przestrzeni_2 = nazwy_modul.NAZWAPRZESTRZENI({ nazwa = pelna_nazwa_strony, ["kod projektu"] ="w", ["kod języka"] = "pl", },tabela_nazw_2, czy_wiki); -- Liczenie nazwy strony, nie pełnej, tzn. bez nazwy przestrzeni strony ---- Tutaj uzyskamy "Moduły/Nazwy": local nazwa_strony_2 = nazwy_modul.NAZWASTRONY({ nazwa = pelna_nazwa_strony, ["kod projektu"] ="w", ["kod języka"] = "pl", },tabela_nazw_2, czy_wiki); </syntaxhighlight> == Różne funkcje nazw obliczające różne rodzaje nazw przestrzeni nazw (przed nazwami stron w pełnych nazwach) == === {{Code|m.NAZWAPRZESTRZENI}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NAZWAPRZESTRZENI}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Nazwa przestrzeni służy do liczenia przestrzeni nazw strony z pełnych nazw stron. Gdy przestrzenią nazw jest, dla stron w przestrzeni głównej, przestrzeń '''główna''', wtedy nie ma ciągu reprezentującego w postaci niepustego ciągu, wtedy mamy dla pełnych nazw stron dla przestrzeni przeciwnej, ale nie musi być to przestrzeń dyskusji, wtedy ciąg opisujący ten jest ciągiem niepustym dla przestrzeni niegłównej. Przestrzeń nazw dla stron przedmiotowa jest zmieniana na przedmiotową, a dyskusji na dyskusji, tzn. one na przemian nie są zamieniane, tylko tego samego typu na te tym, ogólnie dla tej funkcji, a nie na przestrzeń typu przeciwnego. Przestrzenie nazw możemy pisać o dowolnej wielkości liter, ona może być również nazwą kanoniczną. Przestrzenie te są opisane w tabelach na stronie: {{lr2|Moduły/Nazwy}}. Gdy z tej funkcji otrzymamy przestrzeń kanoniczną, bo akurat w pełnej nazwie strony ona jest, to jest zamieniana na niekanoniczną nazwę przestrzeni nazw, charakterysttyczną dla danego projektu, jeżeli istnieją odpowiednie parametry w bazie parametrów w tablicach trannsportu w modułach. Dla funkcji bez kodów (tzn. bez: {{Code|klucz projektu}} albo używane razem lub osobno: {{Code|kod projektu}} i {{Code|kod języka}}) opisujących dany projekt: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_2 = "Szablon:Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_3 = "Template:Strona_projektu_Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NAZWAPRZESTRZENI(pelna_nazwa_strony_1,tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Szablon": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NAZWAPRZESTRZENI(pelna_nazwa_strony_2,tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Szablon": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NAZWAPRZESTRZENI(pelna_nazwa_strony_3,tabela_nazw_3); </syntaxhighlight> Dla funkcji z kodami języka i projektu, charakteryzujące dany projekt siostrzany, polskiego Wikibooksa, w różnych wersjach językowych, czyli {{Code|["klucz projektu"] {{=}} "en:w"}}, lub podana w postaci dwóch osobnych zmiennych, czyli {{Code|["kod języka"] {{=}} "en"}} i {{Code|["kod projektu"] {{=}} "w"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Talk": local pelna_nazwa_strony_2 = "Talk:Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template": local pelna_nazwa_strony_3 = "Template:Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template talk": local pelna_nazwa_strony_4 = "Template_talk:Strona_projektu_Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "": local nazwa_przestrzeni_nazw_1 = nazwy_modul.NAZWAPRZESTRZENI({nazwa = pelna_nazwa_strony_1, ["klucz projektu"] = "en:w", }, tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Talk": local nazwa_przestrzeni_nazw_2 = nazwy_modul.NAZWAPRZESTRZENI({nazwa = pelna_nazwa_strony_2, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Template": local nazwa_przestrzeni_nazw_3 = nazwy_modul.NAZWAPRZESTRZENI({nazwa = pelna_nazwa_strony_3, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_4={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Template talk": local nazwa_przestrzeni_nazw_4 = nazwy_modul.NAZWAPRZESTRZENI({nazwa = pelna_nazwa_strony_4, ["klucz projektu"] = "en:w", },tabela_nazw_2); </syntaxhighlight> Przykłady dla szablonu {{s|NAZWAPRZESTRZENI}} dla projektu bieżącego polskiego Wikibooks, widzimy, że po prawwej stronie zawsze otrzymujemy przestrzeń tego powterzeniem po lewej, tylko że zawsze w wersji niekanoniczej: * {{Code|{{s|NAZWAPRZESTRZENI|Strona_projektu_Wikibooksa}}}} → {{Tt|{{NAZWAPRZESTRZENI|Strona_projektu_Wikibooksa}}}} * {{Code|{{s|NAZWAPRZESTRZENI|Dyskusja:Strona_projektu_Wikibooksa}}}} → {{Tt|{{NAZWAPRZESTRZENI|Dyskusja:Strona_projektu_Wikibooksa}}}} * {{Code|{{s|NAZWAPRZESTRZENI|Szablon:Strona_projektu_Wikibooksa}}}} → {{Tt|{{NAZWAPRZESTRZENI|Szablon:Strona_projektu_Wikibooksa}}}} * {{Code|{{s|NAZWAPRZESTRZENI|Template:Strona_projektu_Wikibooksa}}}} → {{Tt|{{NAZWAPRZESTRZENI|Template:Strona_projektu_Wikibooksa}}}} * {{Code|{{s|NAZWAPRZESTRZENI|Dyskusja_szablonu:Strona_projektu_Wikibooksa}}}} → {{Tt|{{NAZWAPRZESTRZENI|Dyskusja_szablonu:Strona_projektu_Wikibooksa}}}} * {{Code|{{s|NAZWAPRZESTRZENI|Template_talk:Strona_projektu_Wikibooksa}}}} → {{Tt|{{NAZWAPRZESTRZENI|Template_talk:Strona_projektu_Wikibooksa}}}} Z kodami reprezentujące poszczególne projekty, nie tylko dla polskiego Wikibooks (dla niego mamy: {{Code|klucz projektu{{=}}pl:b}}), ale tutaj reprezentujemy angielską wikipedię, gdy nazwy niekanoniczne są jednoczeście nazwami kanonicznymi: * {{Code|{{s|NAZWAPRZESTRZENI|Strona_projektu_Wikibooksa|klucz projektu{{=}}en:w}}}} →{{Tt|{{NAZWAPRZESTRZENI|Strona_projektu_Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|NAZWAPRZESTRZENI|Talk:Strona_projektu_Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{NAZWAPRZESTRZENI|Talk:Strona_projektu_Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|NAZWAPRZESTRZENI|Template:Strona_projektu_Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{NAZWAPRZESTRZENI|Template:Strona_projektu_Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|NAZWAPRZESTRZENI|Template_talk:Strona_projektu_Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{NAZWAPRZESTRZENI|Template_talk:Strona_projektu_Wikibooksa|klucz projektu=en:w}}}} === {{Code|m["PRZEDMIOTOWAPRZESTRZEŃ"]}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|PRZEDMIOTOWAPRZESTRZEŃ}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Przedmiotowa nazwa przestrzeni nazw służy do liczenia przestrzeni nazw strony z pełnych nazw stron. Gdy przestrzenią nazw jest dla stron w przestrzeni głównej lub dyskusji '''Dyskusja''' po zamianie na ten rodzaj przestrzeni, wtedy nie ma ciągu reprezentujące w postaci niepustego ciągu, wtedy mamy dla pełnych nazw stron dla przestrzeni przeciwnej (nie może być ta przestrzeń nazw dyskusji), ale nie musi być to przestrzeń dyskusji, wtedy ciąg opisujący ten jest ciągiem niepustym dla przestrzeni niegłównej. Tutaj, jeżeli pełna nazwa strony jest w przestrzeni dyskusji, to ona jest zamieniona na nazwę w przestrzeni przedmiotowej, a gdy ona jest w przestrzeni przedmiotowej, to nic nie trzeba zamieniać, wtedy otrzymujemy tą samą przestrzeń. To ona jest podana pośrednio, czy bezpośrednio, podana w tej nazwie, tylko zamieniona na nazwę niekanoniczną charakteryzująca dany projekt, gdy wszystkie parametry w bazie parametrów są podane. Przestrzenie nazw możemy pisać o dowolnej wielkości liter, ona może być również nazwą kanoniczną. Przestrzenie te są opisane w tabelach na stronie: {{lr2|Moduły/Nazwy}}. Gdy z tej funkcji otrzymamy przestrzeń kanoniczną, bo akurat w pełnej nazwie strony ona jest, to jest zamieniana na niekanoniczną nazwę przestrzeni nazw przedmiotową, charakterysttyczną dla danego projektu, jeżeli istnieją odpowiednie parametry w bazie parametrów w tablicach trannsportu w modułach. Dla funkcji bez kodów (tzn. bez: {{Code|klucz projektu}} albo używane razem lub osobno: {{Code|kod projektu}} i {{Code|kod języka}}) opisujących dany projekt: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej dyskusji: local pelna_nazwa_strony_1 = "Dyskusja:Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Dyskusja szablonu": local pelna_nazwa_strony_2 = "Dyskusja_szablonu:Szablon:Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Dyskusja szablonu": local pelna_nazwa_strony_3 = "Template_talk:Strona_projektu_Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "": local nazwa_przestrzeni_nazw_przedmiotowa_1 = nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](pelna_nazwa_strony_1,tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Szablon": local nazwa_przestrzeni_nazw_przedmiotowa_2 = nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](pelna_nazwa_strony_2,tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Szablon": local nazwa_przestrzeni_nazw_przedmiotowa_3 = nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](pelna_nazwa_strony_3,tabela_nazw_3); </syntaxhighlight> Dla funkcji z tymi kodami, używając {{Code|klucz projektu}} albo {{Code|kod projektu}} i {{Code|kod jezyka}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Talk": local pelna_nazwa_strony_2 = "Talk:Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template": local pelna_nazwa_strony_3 = "Template:Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template talk": local pelna_nazwa_strony_4 = "Template_talk:Strona_projektu_Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "": local nazwa_przestrzeni_nazw_przedmiotowa_1 = nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa = pelna_nazwa_strony_1, ["klucz projektu"] = "en:w", }, tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "": local nazwa_przestrzeni_nazw_przedmiotowa_2 = nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa = pelna_nazwa_strony_2, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Template": local nazwa_przestrzeni_nazw_przedmiotowa_3 = nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa = pelna_nazwa_strony_3, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_4={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Template": local nazwa_przestrzeni_nazw_przedmiotowa_4 = nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa = pelna_nazwa_strony_4, ["klucz projektu"] = "en:w", },tabela_nazw_2); </syntaxhighlight> Przykłady dla szablonu {{s|PRZEDMIOTOWAPRZESTRZEŃ}} dla projektu bieżącego polskiego Wikibooks, otrzymujemy przestrzeń nazw pio prawej stronie będącą tego po lewej w wersji przedmiotowej: * {{Code|{{s|PRZEDMIOTOWAPRZESTRZEŃ|Dyskusja:Strona_projektu_Wikibooksa}}}} → {{Tt|{{PRZEDMIOTOWAPRZESTRZEŃ|Dyskusja:Strona_projektu_Wikibooksa}}}} * {{Code|{{s|PRZEDMIOTOWAPRZESTRZEŃ|Dyskusja_szablonu:Strona_projektu_Wikibooksa}}}} → {{Tt|{{PRZEDMIOTOWAPRZESTRZEŃ|Dyskusja_szablonu:Strona_projektu_Wikibooksa}}}} * {{Code|{{s|PRZEDMIOTOWAPRZESTRZEŃ|Template_talk:Strona_projektu_Wikibooksa}}}} → {{Tt|{{PRZEDMIOTOWAPRZESTRZEŃ|Template_talk:Strona_projektu_Wikibooksa}}}} Z kodami reprezentujące poszczególne projekty, nie tylko dla polskiego Wikibooks (dla niego mamy: {{Code|klucz projektu{{=}}pl:b}}), ale tutaj reprezentujemy angielska wikipedię, gdy nazwy niekanoniczne są jednoczeście nazwami kanonicznymi: * {{Code|{{s|PRZEDMIOTOWAPRZESTRZEŃ|Talk:Strona_projektu_Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{PRZEDMIOTOWAPRZESTRZEŃ|Talk:Strona_projektu_Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|PRZEDMIOTOWAPRZESTRZEŃ|Template_talk:Strona_projektu_Wikibooksa|klucz projektu{{=}}en:w}}}}} → {{Tt|{{PRZEDMIOTOWAPRZESTRZEŃ|Template_talk:Strona_projektu_Wikibooksa|klucz projektu=en:w}}}} === {{Code|m["PRZESTRZEŃDYSKUSJI"]}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|PRZESTRZEŃDYSKUSJI}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Nazwa przestrzeni nazw dyskusji służy do liczenia przestrzeni nazw strony z pełnych nazw stron. Gdy przestrzenią nazw jest dla stron w przestrzeni głównej, wtedy nie ma ciągu reprezentujące w postaci niepustego ciągu, ale przestrzeń dyskusji nie jest nigdy w tej przestrzeni, wtedy mamy dla pełnych nazw stron dla przestrzeni przeciwnej, ale nie musi być to przestrzeń dyskusji, wtedy ciąg opisujący ten jest ciągiem niepustym dla przestrzeni niegłównej. Tutaj, jeżeli pełna nazwa strony jest w przestrzeni przedmiotowej, to ona jest zamieniona na nazwę w przestrzeni dyskusji, a gdy ona jest w przestrzeni dyskusji, to nic nie trzeba zamieniać, wtedy otrzymujemy tą samą przestrzeń. To ona jest podana pośrednio, czy bezpośrednio, podana w tej nazwie, tylko zamieniona na nazwę niekanoniczną charakteryzująca dany projekt, gdy wszystkie parametry w bazie parametrów są podane. Przestrzenie nazw możemy pisać o dowolnej wielkości liter, ona może być również nazwą kanoniczną. Przestrzenie te są opisane w tabelach na stronie: {{lr2|Moduły/Nazwy}}. Gdy z tej funkcji otrzymamy przestrzeń kanoniczną, bo akurat w pełnej nazwie strony ona jest, to jest zamieniana na niekanoniczną nazwę przestrzeni nazw dyskusji, charakterysttyczną dla danego projektu, jeżeli istnieją odpowiednie parametry w bazie parametrów w tablicach trannsportu w modułach. Dla funkcji bez kodów (tzn. bez: {{Code|klucz projektu}} albo używane razem lub osobno: {{Code|kod projektu}} i {{Code|kod języka}}) opisujących dany projekt: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_2 = "Szablon:Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_3 = "Template:Strona_projektu_Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Dyskusja": local nazwa_przestrzeni_nazw_dyskusji_1 = nazwy_modul["PRZESTRZEŃDYSKUSJI"](pelna_nazwa_strony_1,tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Dyskusja szablonu": local nazwa_przestrzeni_nazw_dyskusji_2 = nazwy_modul["PRZESTRZEŃDYSKUSJI"](pelna_nazwa_strony_2,tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Dyskusja szablonu": local nazwa_przestrzeni_nazw_dyskusji_3 = nazwy_modul["PRZESTRZEŃDYSKUSJI"](pelna_nazwa_strony_3,tabela_nazw_3); </syntaxhighlight> Dla funkcji z kodami języka i projektu, charakteryzujące dany projekt siostrzany, polskiego Wikibooksa, w różnych wersjach językowych, czyli {{Code|["klucz projektu"] {{=}} "en:w"}}, lub podana w postaci dwóch osobnych zmiennych, czyli {{Code|["kod języka"] {{=}} "en"}} i {{Code|["kod projektu"] {{=}} "w"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Talk": local pelna_nazwa_strony_2 = "Talk:Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template": local pelna_nazwa_strony_3 = "Template:Strona_projektu_Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template talk": local pelna_nazwa_strony_4 = "Template_talk:Strona_projektu_Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Talk": local nazwa_przestrzeni_nazw_dyskusji_1 = nazwy_modul["PRZESTRZEŃDYSKUSJI"]({nazwa = pelna_nazwa_strony_1, ["klucz projektu"] = "en:w", }, tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Talk": local nazwa_przestrzeni_nazw_dyskusji_2 = nazwy_modul["PRZESTRZEŃDYSKUSJI"]({nazwa = pelna_nazwa_strony_2, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Template talk": local nazwa_przestrzeni_nazw_dyskusji_3 = nazwy_modul["PRZESTRZEŃDYSKUSJI"]({nazwa = pelna_nazwa_strony_3, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_4={}; -- Wynikiem jest nazwa przestrzeni nazw o wartości: "Template talk": local nazwa_przestrzeni_nazw_dyskusji_4 = nazwy_modul["PRZESTRZEŃDYSKUSJI"]({nazwa = pelna_nazwa_strony_4, ["klucz projektu"] = "en:w", },tabela_nazw_2); </syntaxhighlight> Przykłady dla szablonu {{s|PRZESTRZEŃDYSKUSJI}} dla projektu bieżącego polskiego Wikibooks, przestrzeń nazw po prawej sotrzymujemy będącą powtórzeniem tego po lewej, tylko że będącą powtorzzeniem tego po lewej, ale w wersji dyskusji: * {{Code|{{s|PRZESTRZEŃDYSKUSJI|Strona_projektu_Wikibooksa}}}} → {{Tt|{{PRZESTRZEŃDYSKUSJI|Strona_projektu_Wikibooksa}}}} * {{Code|{{s|PRZESTRZEŃDYSKUSJI|Szablon:Strona_projektu_Wikibooksa}}}} → {{Tt|{{PRZESTRZEŃDYSKUSJI|Szablon:Strona_projektu_Wikibooksa}}}} * {{Code|{{s|PRZESTRZEŃDYSKUSJI|Template:Strona_projektu_Wikibooksa}}}} → {{Tt|{{PRZESTRZEŃDYSKUSJI|Template:Strona_projektu_Wikibooksa}}}} Z kodami reprezentujące poszczególne projekty, nie tylko dla polskiego Wikibooks (dla niego mamy: {{Code|klucz projektu{{=}}pl:b}}), ale tutaj reprezentujemy angielska wikipedię, gdy nazwy niekanoniczne są jednoczeście nazwami kanonicznymi: * {{Code|{{s|PRZESTRZEŃDYSKUSJI|Strona_projektu_Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{PRZESTRZEŃDYSKUSJI|Strona_projektu_Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|PRZESTRZEŃDYSKUSJI|Template:Strona_projektu_Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{PRZESTRZEŃDYSKUSJI|Template:Strona_projektu_Wikibooksa|klucz projektu=en:w}}}} == Funkcje nazw strony, czyli rodzaje nazw po nazwach przestrzeni nazw w pełnych nazwach strony == === {{Code|m.NAZWASTRONY}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NAZWASTRONY}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Nazwa strony służy do liczenia nazw strony, z pełnych nazw stron, bez nazwy przestrzeni, gdy przestrzenią jest strona w przestrzeni głównej, wtedy otrzymujemy w przybliżeniu ten sam ciąg z dokładnością do formatowania, bo w takim przypadku przestrzenią jest ciąg pusty, a z pełnych nazw stron z innymi przestrzeniami, otrzymujemy szereg od najbliższego dwukropka od lewej strony. Funkcja wyciąga z pełnej nazwy strony nazwę strony bez przestrzeni nazw z formatowaniem tego ciągu, tzn. pierwsza litera z ciągu jest zamieniana na wielką, kolejne dolne myślniki lub spacje są zamieniane na jedną spację, ciąg jest trimowany, z jednej jak i z drugiej strony, czyli z dwóch stron. Ta przestrzeń nazw, która jest usuwana z pełnej nazwy strony, tworząc nazwę strony, może być kanoniczna lub niekanoniczna, ale w wersji charakterystycznej dla danego projektu. Definicja kodów jest zdefiniowana jak w punkcie dla funkcji: {{Code|{{sr|#m.NAZWAPRZESTRZENI|p=Nazwy/Tom II}}}}, w części dla funkcji bibliotecznej, z której ta funkcja korzysta. Ta predefiniowana fukcja korzysta z tejże właśnie funkcji. Wywołanie tej funkcji, ale bez użycia kodów określające dany projekt: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_2 = "Szablon:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_3 = "Template:Strona_ _ projektu_ _ Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local nazwa_strony_1 = nazwy_modul.NAZWASTRONY(pelna_nazwa_strony_1,tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local nazwa_strony_2 = nazwy_modul.NAZWASTRONY(pelna_nazwa_strony_2,tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local nazwa_strony_3 = nazwy_modul.NAZWASTRONY(pelna_nazwa_strony_3,tabela_nazw_3); </syntaxhighlight> Dla funkcji z kodami języka i projektu, charakteryzujące dany projekt siostrzany, polskiego Wikibooksa, w różnych wersjach językowych, czyli {{Code|["klucz projektu"] {{=}} "en:w"}}, lub podana w postaci dwóch osobnych zmiennych, czyli {{Code|["kod języka"] {{=}} "en"}} i {{Code|["kod projektu"] {{=}} "w"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Talk": local pelna_nazwa_strony_2 = "Talk:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template": local pelna_nazwa_strony_3 = "Template:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template talk": local pelna_nazwa_strony_4 = "TEMPLATE___ ___ TALK:Strona_ _ projektu_ _ Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local nazwa_strony_1 = nazwy_modul.NAZWASTRONY({nazwa = pelna_nazwa_strony_1, ["klucz projektu"] = "en:w", }, tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local nazwa_strony_2 = nazwy_modul.NAZWASTRONY({nazwa = pelna_nazwa_strony_2, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local nazwa_strony_3 = nazwy_modul.NAZWASTRONY({nazwa = pelna_nazwa_strony_3, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local nazwa_strony_4 = nazwy_modul.NAZWASTRONY({nazwa = pelna_nazwa_strony_4, ["klucz projektu"] = "en:w", },tabela_nazw_2); </syntaxhighlight> Przykłady dla szablonu {{s|NAZWASTRONY}}, tutaj widzimy, że nazwy stron są z dokładnością do formatowania po prawej stronie tego po lewej, bez nazw przestrzeni: * {{Code|{{s|NAZWASTRONY|:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{NAZWASTRONY|:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|NAZWASTRONY|Szablon:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{NAZWASTRONY|Szablon:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|NAZWASTRONY|Template:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{NAZWASTRONY|Template:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|NAZWASTRONY|Dyskusja_ _ szablonu:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{NAZWASTRONY|Dyskusja_ _ szablonu:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|NAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{NAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} Z kodami reprezentujące poszczególne projekty, to samo, co powyżej, tylko dla projektów siostrzanych: * {{Code|{{s|NAZWASTRONY|:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{NAZWASTRONY|:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|NAZWASTRONY|Template:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{NAZWASTRONY|Template:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|NAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{NAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} === {{Code|m["PEŁNANAZWASTRONY"]}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|PEŁNANAZWASTRONY}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Nazwa strony służy do liczenia nazw strony, z pełnych nazw strony, z nazwą przestrzeni, gdy przestrzenią jest strona w przestrzeni głównej, wtedy otrzymujemy w przybliżeniu ten sam ciąg z dokładnością do formatowania, bo w takim przypadku przestrzenią jest ciąg pusty, a z pełnych nazw stron z innymi przestrzeniami, otrzymujemy szereg ten sam, tylko że sformatowany. Tutaj jest pewny wyjątek, a mianowicie w nich nazwy, jeżeli są one kanoniczne, to są zamieniane w nich na niekanoniczne. Funkcja wyciąga z pełnej nazwy strony nazwę strony z przestrzenią nazw z formatowaniem tego ciągu, tzn. pierwsza litera nazwy strony, w pełnej nazwie strony, z ciągu jest zamieniana na wielką, kolejne dolne myślniki lub spacje są zamieniane na jedną spację, ciąg jest trimowany, z jednej jak i z drugiej strony, czyli z dwóch stron. Ta przestrzeń nazw, która nie jest usuwana z pełnej nazwy strony, tworząc pelną nazwę strony, może być kanoniczna lub niekanoniczna, ale w wersji charakterystycznej dla danego projektu. Definicja kodów jest w punkcie jak dla funkcji: {{Code|{{sr|#m.NAZWAPRZESTRZENI|p=Nazwy/Tom II}}}}, w części dla funkcji bibliotecznej, z której ta funkcja korzysta. Ta predefiniowana fukcja korzysta z tejże właśnie funkcji. Wywołanie tej funkcji, ale bez użycia kodów określające dany projekt: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_2 = "SZABLON:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_3 = "TEMPLATE:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Dyskusja szablonu": local pelna_nazwa_strony_4 = "DYSKUSJA_SZABLONU:Strona_ _ projektu_ _ Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_1 = nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_1,tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Szablon:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_2 = nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_2,tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Szablon:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_3 = nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_3,tabela_nazw_3); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Dyskusja szablonu:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_4 = nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_4,tabela_nazw_4); </syntaxhighlight> Dla funkcji z kodami języka i projektu, charakteryzujące dany projekt siostrzany, polskiego Wikibooksa, w różnych wersjach językowych, czyli {{Code|["klucz projektu"] {{=}} "en:w"}}, lub podana w postaci dwóch osobnych zmiennych, czyli {{Code|["kod języka"] {{=}} "en"}} i {{Code|["kod projektu"] {{=}} "w"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Talk": local pelna_nazwa_strony_2 = "TALK:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template": local pelna_nazwa_strony_3 = "TEMPLATE:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template talk": local pelna_nazwa_strony_4 = "TEMPLATE___ ___ TALK:Strona_ _ projektu_ _ Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_1 = nazwy_modul["PEŁNANAZWASTRONY"]({nazwa = pelna_nazwa_strony_1, ["klucz projektu"] = "en:w", }, tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Talk:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_2 = nazwy_modul["PEŁNANAZWASTRONY"]({nazwa = pelna_nazwa_strony_2, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Template:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_3 = nazwy_modul["PEŁNANAZWASTRONY"]({nazwa = pelna_nazwa_strony_3, ["klucz projektu"] = "en:w", },tabela_nazw_4); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Template talk:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_4 = nazwy_modul["PEŁNANAZWASTRONY"]({nazwa = pelna_nazwa_strony_4, ["klucz projektu"] = "en:w", },tabela_nazw_4); </syntaxhighlight> Przykłady dla szablonu {{s|PEŁNANAZWASTRONY}}, tutaj widzimy, że nazwy stron są z dokładnością do formatowania po prawej stronie tego po lewej, z nazwami przestrzeni: * {{Code|{{s|PEŁNANAZWASTRONY|Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{PEŁNANAZWASTRONY|Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|PEŁNANAZWASTRONY|SZABLON:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{PEŁNANAZWASTRONY|SZABLON:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|PEŁNANAZWASTRONY|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{PEŁNANAZWASTRONY|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|PEŁNANAZWASTRONY|Dyskusja_ _ szablonu:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{PEŁNANAZWASTRONY|Dyskusja_ _ szablonu:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|PEŁNANAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{PEŁNANAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} Z kodami reprezentujące poszczególne projekty, to samo, co powyżej, tylko dla projektów siostrzanych: * {{Code|{{s|PEŁNANAZWASTRONY|:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{PEŁNANAZWASTRONY|:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|PEŁNANAZWASTRONY|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{PEŁNANAZWASTRONY|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|PEŁNANAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{PEŁNANAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} == Funkcje nazw bazowe strony == === {{Code|m.BAZOWANAZWASTRONY}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|BAZOWANAZWASTRONY}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Jest to funkcja, z której z pełnej nazwy strony jest ucinana przestrzeń nazw i nazwa podstrony, wtedy zostaje nazwa strony nadrzędna, czyli zwraca nazwę bazową strony, bez nazwy przestrzeni nazw, czyli bezpośredniego rodzica w drzewie adresów stron. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_2 = "Szablon:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_3 = "Template:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Dyskusja szablonu": local pelna_nazwa_strony_3 = "Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local bazowa_nazwa_strony_1 = nazwy_modul.BAZOWANAZWASTRONY(pelna_nazwa_strony_1,tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local bazowa_nazwa_strony_2 = nazwy_modul.BAZOWANAZWASTRONY(pelna_nazwa_strony_2,tabela_nazw_2); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local bazowa_nazwa_strony_4 = nazwy_modul.BAZOWANAZWASTRONY(pelna_nazwa_strony_4,tabela_nazw_4); </syntaxhighlight> Dla funkcji z kodami języka i projektu, charakteryzujące dany projekt siostrzany, polskiego Wikibooksa, w różnych wersjach językowych, czyli {{Code|["klucz projektu"] {{=}} "en:w"}}, lub podana w postaci dwóch osobnych zmiennych, czyli {{Code|["kod języka"] {{=}} "en"}} i {{Code|["kod projektu"] {{=}} "w"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Talk": local pelna_nazwa_strony_2 = "Talk:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Template": local pelna_nazwa_strony_3 = "Template:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Template talk": local pelna_nazwa_strony_4 = "Template talk:Strona/Poziom_1/Poziom_2/Poziom_3"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local bazowa_nazwa_strony_1 = nazwy_modul.BAZOWANAZWASTRONY({nazwa = pelna_nazwa_strony_1, ["klucz projektu"] = "en:w", }, tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local bazowa_nazwa_strony_2 = nazwy_modul.BAZOWANAZWASTRONY({nazwa = pelna_nazwa_strony_2, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local bazowa_nazwa_strony_3 = nazwy_modul.BAZOWANAZWASTRONY({nazwa = pelna_nazwa_strony_3, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local bazowa_nazwa_strony_4 = nazwy_modul.BAZOWANAZWASTRONY({nazwa = pelna_nazwa_strony_4, ["klucz projektu"] = "en:w", },tabela_nazw_2); </syntaxhighlight> Przykłady dla szablonu {{s|BAZOWANAZWASTRONY}}: * {{Code|{{s|BAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{BAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|BAZOWANAZWASTRONY|Szablon:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{BAZOWANAZWASTRONY|Szablon:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|BAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{BAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|BAZOWANAZWASTRONY|Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{BAZOWANAZWASTRONY|Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|BAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{BAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3}}}} Z kodami reprezentujące poszczególne projekty: * {{Code|{{s|BAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{BAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} * {{Code|{{s|BAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{BAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} * {{Code|{{s|BAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{BAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} === {{Code|m["PEŁNABAZOWANAZWASTRONY"]}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|PEŁNABAZOWANAZWASTRONY}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Jest to funkcja, z której z pełnej nazwy strony nie jest ucinana przestrzeń nazw, ale za to jest odejmowana nazwa podstrony, wtedy zostaje pełna nazwa strony nadrzędna, czyli zwraca nazwę bazową strony z nazwą przestrzeni nazw, czyli bezpośredniego rodzica w drzewie adresów stron. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_2 = "SZABLON:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_3 = "TEMPLATE:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Dyskusja szablonu": local pelna_nazwa_strony_3 = "Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_1 = nazwy_modul["PEŁNABAZOWANAZWASTRONY"](pelna_nazwa_strony_1,tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Szablon:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_2 = nazwy_modul["PEŁNABAZOWANAZWASTRONY"](pelna_nazwa_strony_2,tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Szablon:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_3 = nazwy_modul["PEŁNABAZOWANAZWASTRONY"](pelna_nazwa_strony_3,tabela_nazw_3); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Dyskusja szablonu:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_4 = nazwy_modul["PEŁNABAZOWANAZWASTRONY"](pelna_nazwa_strony_4,tabela_nazw_4); </syntaxhighlight> Dla funkcji z kodami języka i projektu, charakteryzujące dany projekt siostrzany, polskiego Wikibooksa, w różnych wersjach językowych, czyli {{Code|["klucz projektu"] {{=}} "en:w"}}, lub podana w postaci dwóch osobnych zmiennych, czyli {{Code|["kod języka"] {{=}} "en"}} i {{Code|["kod projektu"] {{=}} "w"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Talk": local pelna_nazwa_strony_2 = "Talk:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Template": local pelna_nazwa_strony_3 = "Template:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Template talk": local pelna_nazwa_strony_4 = "Template talk:Strona/Poziom_1/Poziom_2/Poziom_3"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_1 = nazwy_modul["PEŁNABAZOWANAZWASTRONY"]({nazwa = pelna_nazwa_strony_1, ["klucz projektu"] = "en:w", }, tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Talk:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_2 = nazwy_modul["PEŁNABAZOWANAZWASTRONY"]({nazwa = pelna_nazwa_strony_2, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Template:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_3 = nazwy_modul["PEŁNABAZOWANAZWASTRONY"]({nazwa = pelna_nazwa_strony_3, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Template talk:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_4 = nazwy_modul["PEŁNABAZOWANAZWASTRONY"]({nazwa = pelna_nazwa_strony_4, ["klucz projektu"] = "en:w", },tabela_nazw_2); </syntaxhighlight> Przykłady dla szablonu {{s|PEŁNABAZOWANAZWASTRONY}}: * {{Code|{{s|PEŁNABAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{PEŁNABAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|PEŁNABAZOWANAZWASTRONY|Szablon:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{PEŁNABAZOWANAZWASTRONY|Szablon:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|PEŁNABAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{PEŁNABAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|PEŁNABAZOWANAZWASTRONY|Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{PEŁNABAZOWANAZWASTRONY|Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|PEŁNABAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{PEŁNABAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3}}}} Z kodami reprezentujące poszczególne projekty: * {{Code|{{s|PEŁNABAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{PEŁNABAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} * {{Code|{{s|PEŁNABAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{PEŁNABAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} * {{Code|{{s|PEŁNABAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{PEŁNABAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} == Funkcje nazw przejścia z jednego typu nazwy strony do drugiego == === Funkcje nazw przedmiotowych === ==== {{Code|m.PRZEDMIOTOWABAZOWANAZWASTRONY}} ==== ===== Odpowiednik szablonowy ===== Odpowiednik szablonowy jest pod nazwą {{s|PRZEDMIOTOWABAZOWANAZWASTRONY}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ===== Funkcja biblioteczna ===== Jest to funkcja, z której z pełnej nazwy strony nie jest ucinana przestrzeń nazw, tylko zamieniana na nazwę przedmiotową (o numerze {{Code|id}} parzystym), ale za to jest odejmowana nazwa podstrony, wtedy zostaje pełna nazwa strony nadrzędna, czyli zwraca nazwę bazową strony z przedmiotową nazwą przestrzeni nazw, czyli bezpośredniego rodzica w drzewie adresów stron. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_2 = "SZABLON:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_3 = "TEMPLATE:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Dyskusja szablonu": local pelna_nazwa_strony_3 = "Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_1 = nazwy_modul.PRZEDMIOTOWABAZOWANAZWASTRONY(pelna_nazwa_strony_1,tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Szablon:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_2 = nazwy_modul.PRZEDMIOTOWABAZOWANAZWASTRONY(pelna_nazwa_strony_2,tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Szablon:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_3 = nazwy_modul.PRZEDMIOTOWABAZOWANAZWASTRONY(pelna_nazwa_strony_3,tabela_nazw_3); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Szablon:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_4 = nazwy_modul.PRZEDMIOTOWABAZOWANAZWASTRONY(pelna_nazwa_strony_4,tabela_nazw_4); </syntaxhighlight> Dla funkcji z kodami języka i projektu, charakteryzujące dany projekt siostrzany, polskiego Wikibooksa, w różnych wersjach językowych, czyli {{Code|["klucz projektu"] {{=}} "en:w"}}, lub podana w postaci dwóch osobnych zmiennych, czyli {{Code|["kod języka"] {{=}} "en"}} i {{Code|["kod projektu"] {{=}} "w"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Talk": local pelna_nazwa_strony_2 = "Talk:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Template": local pelna_nazwa_strony_3 = "Template:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Template talk": local pelna_nazwa_strony_4 = "Template talk:Strona/Poziom_1/Poziom_2/Poziom_3"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_1 = nazwy_modul.PRZEDMIOTOWABAZOWANAZWASTRONY({nazwa = pelna_nazwa_strony_1, ["klucz projektu"] = "en:w", }, tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_2 = nazwy_modul.PRZEDMIOTOWABAZOWANAZWASTRONY({nazwa = pelna_nazwa_strony_2, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Template:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_3 = nazwy_modul.PRZEDMIOTOWABAZOWANAZWASTRONY({nazwa = pelna_nazwa_strony_3, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Template:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_4 = nazwy_modul.PRZEDMIOTOWABAZOWANAZWASTRONY({nazwa = pelna_nazwa_strony_4, ["klucz projektu"] = "en:w", },tabela_nazw_2); </syntaxhighlight> Przykłady dla szablonu {{s|PRZEDMIOTOWABAZOWANAZWASTRONY}}: * {{Code|{{s|PRZEDMIOTOWABAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{PRZEDMIOTOWABAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|PRZEDMIOTOWABAZOWANAZWASTRONY|Szablon:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{PRZEDMIOTOWABAZOWANAZWASTRONY|Szablon:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|PRZEDMIOTOWABAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{PRZEDMIOTOWABAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|PRZEDMIOTOWABAZOWANAZWASTRONY|Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{PRZEDMIOTOWABAZOWANAZWASTRONY|Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|PRZEDMIOTOWABAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{PRZEDMIOTOWABAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3}}}} Z kodami reprezentujące poszczególne projekty: * {{Code|{{s|PRZEDMIOTOWABAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{PRZEDMIOTOWABAZOWANAZWASTRONY|Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} * {{Code|{{s|PRZEDMIOTOWABAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{PRZEDMIOTOWABAZOWANAZWASTRONY|Template:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} * {{Code|{{s|PRZEDMIOTOWABAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{PRZEDMIOTOWABAZOWANAZWASTRONY|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} ==== {{Code|m.PRZEDMIOTOWANAZWASTRONY}} ==== ===== Odpowiednik szablonowy ===== Odpowiednik szablonowy jest pod nazwą {{s|PRZEDMIOTOWANAZWASTRONY}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ===== Funkcja biblioteczna ===== Nazwa strony służy do liczenia nazw strony, z pełnych nazw strony, z przedmiotową nazwą przestrzeni, gdy przestrzenią jest strona w przestrzeni głównej, wtedy otrzymujemy w przybliżeniu ten sam ciąg z dokładnością do formatowania zamieniony na przedmiotową, czyli tożsamość, bo w takim przypadku przestrzenią jest ciąg pusty, a z pełnych nazw stron z innymi przestrzeniami, otrzymujemy szereg ten sam, tylko że sformatowany, z tym zamienieniem. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_2 = "SZABLON:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_3 = "TEMPLATE:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Dyskusja szablonu": local pelna_nazwa_strony_4 = "DYSKUSJA_SZABLONU:Strona_ _ projektu_ _ Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_1 = nazwy_modul.PRZEDMIOTOWANAZWASTRONY(pelna_nazwa_strony_1,tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Szablon:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_2 = nazwy_modul.PRZEDMIOTOWANAZWASTRONY(pelna_nazwa_strony_2,tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Szablon:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_3 = nazwy_modul.PRZEDMIOTOWANAZWASTRONY(pelna_nazwa_strony_3,tabela_nazw_3); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Szablon:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_4 = nazwy_modul.PRZEDMIOTOWANAZWASTRONY(pelna_nazwa_strony_4,tabela_nazw_4); </syntaxhighlight> Dla funkcji z kodami języka i projektu, charakteryzujące dany projekt siostrzany, polskiego Wikibooksa, w różnych wersjach językowych, czyli {{Code|["klucz projektu"] {{=}} "en:w"}}, lub podana w postaci dwóch osobnych zmiennych, czyli {{Code|["kod języka"] {{=}} "en"}} i {{Code|["kod projektu"] {{=}} "w"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Talk": local pelna_nazwa_strony_2 = "TALK:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template": local pelna_nazwa_strony_3 = "TEMPLATE:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template talk": local pelna_nazwa_strony_4 = "TEMPLATE___ ___ TALK:Strona_ _ projektu_ _ Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_1 = nazwy_modul.PRZEDMIOTOWANAZWASTRONY({nazwa = pelna_nazwa_strony_1, ["klucz projektu"] = "en:w", }, tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_2 = nazwy_modul.PRZEDMIOTOWANAZWASTRONY({nazwa = pelna_nazwa_strony_2, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Template:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_3 = nazwy_modul.PRZEDMIOTOWANAZWASTRONY({nazwa = pelna_nazwa_strony_3, ["klucz projektu"] = "en:w", },tabela_nazw_4); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Template:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_4 = nazwy_modul.PRZEDMIOTOWANAZWASTRONY({nazwa = pelna_nazwa_strony_4, ["klucz projektu"] = "en:w", },tabela_nazw_4); </syntaxhighlight> Przykłady dla szablonu {{s|PRZEDMIOTOWANAZWASTRONY}}: * {{Code|{{s|PRZEDMIOTOWANAZWASTRONY|Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{PRZEDMIOTOWANAZWASTRONY|Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|PRZEDMIOTOWANAZWASTRONY|SZABLON:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{PRZEDMIOTOWANAZWASTRONY|SZABLON:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|PRZEDMIOTOWANAZWASTRONY|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{PRZEDMIOTOWANAZWASTRONY|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|PRZEDMIOTOWANAZWASTRONY|Dyskusja_ _ szablonu:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{PRZEDMIOTOWANAZWASTRONY|Dyskusja_ _ szablonu:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|PRZEDMIOTOWANAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{PRZEDMIOTOWANAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} Z kodami reprezentujące poszczególne projekty: * {{Code|{{s|PRZEDMIOTOWANAZWASTRONY|:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{PRZEDMIOTOWANAZWASTRONY|:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|PRZEDMIOTOWANAZWASTRONY|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{PRZEDMIOTOWANAZWASTRONY|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|PRZEDMIOTOWANAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{PRZEDMIOTOWANAZWASTRONY|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} === Funkcje nazw dyskusji === === {{Code|m.NAZWASTRONYDYSKUSJI}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|NAZWASTRONYDYSKUSJI}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Nazwa strony służy do liczenia nazw strony, z pełnych nazw strony, z nazwą przestrzeni nazwy dyskusji, gdy przestrzenią jest strona w przestrzeni głównej, wtedy otrzymujemy w przybliżeniu ten sam ciąg z dokładnością do formatowania zamieniony na dyskusji, a z pełnych nazw stron z przestrzeniami dyskusji, otrzymujemy ten sam szereg, tylko że sformatowany, a z pełnych nazw przedmiotowych otrzymujemy nazwy zamienione z tych przestrzeni nazw na dyskusji. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_2 = "SZABLON:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_3 = "TEMPLATE:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Dyskusja szablonu": local pelna_nazwa_strony_4 = "DYSKUSJA_SZABLONU:Strona_ _ projektu_ _ Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Dyskusja:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_1 = nazwy_modul.NAZWASTRONYDYSKUSJI(pelna_nazwa_strony_1,tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Dyskusja szablonu:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_2 = nazwy_modul.NAZWASTRONYDYSKUSJI(pelna_nazwa_strony_2,tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Dyskusja szablonu:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_3 = nazwy_modul.NAZWASTRONYDYSKUSJI(pelna_nazwa_strony_3,tabela_nazw_3); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Dyskusja szablonu:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_4 = nazwy_modul.NAZWASTRONYDYSKUSJI(pelna_nazwa_strony_4,tabela_nazw_4); </syntaxhighlight> Dla funkcji z kodami języka i projektu, charakteryzujące dany projekt siostrzany, polskiego Wikibooksa, w różnych wersjach językowych, czyli {{Code|["klucz projektu"] {{=}} "en:w"}}, lub podana w postaci dwóch osobnych zmiennych, czyli {{Code|["kod języka"] {{=}} "en"}} i {{Code|["kod projektu"] {{=}} "w"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Talk": local pelna_nazwa_strony_2 = "TALK:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template": local pelna_nazwa_strony_3 = "TEMPLATE:Strona_ _ projektu_ _ Wikibooksa"; -- Pełna nazwa strony w przestrzeni "Template talk": local pelna_nazwa_strony_4 = "TEMPLATE___ ___ TALK:Strona_ _ projektu_ _ Wikibooksa"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Talk:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_1 = nazwy_modul.NAZWASTRONYDYSKUSJI({nazwa = pelna_nazwa_strony_1, ["klucz projektu"] = "en:w", }, tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Talk:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_2 = nazwy_modul.NAZWASTRONYDYSKUSJI({nazwa = pelna_nazwa_strony_2, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Template talk:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_3 = nazwy_modul.NAZWASTRONYDYSKUSJI({nazwa = pelna_nazwa_strony_3, ["klucz projektu"] = "en:w", },tabela_nazw_4); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Template talk:Strona projektu Wikibooksa": local pelna_nazwa_strony_sformatowana_4 = nazwy_modul.NAZWASTRONYDYSKUSJI({nazwa = pelna_nazwa_strony_4, ["klucz projektu"] = "en:w", },tabela_nazw_4); </syntaxhighlight> Przykłady dla szablonu {{s|NAZWASTRONYDYSKUSJI}}: * {{Code|{{s|NAZWASTRONYDYSKUSJI|Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{NAZWASTRONYDYSKUSJI|Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|NAZWASTRONYDYSKUSJI|SZABLON:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{NAZWASTRONYDYSKUSJI|SZABLON:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|NAZWASTRONYDYSKUSJI|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{NAZWASTRONYDYSKUSJI|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|NAZWASTRONYDYSKUSJI|Dyskusja_ _ szablonu:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{NAZWASTRONYDYSKUSJI|Dyskusja_ _ szablonu:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} * {{Code|{{s|NAZWASTRONYDYSKUSJI|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} → {{Tt|{{NAZWASTRONYDYSKUSJI|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa}}}} Z kodami reprezentujące poszczególne projekty: * {{Code|{{s|NAZWASTRONYDYSKUSJI|:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{NAZWASTRONYDYSKUSJI|:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|NAZWASTRONYDYSKUSJI|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{NAZWASTRONYDYSKUSJI|TEMPLATE:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} * {{Code|{{s|NAZWASTRONYDYSKUSJI|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu{{=}}en:w}}}} → {{Tt|{{NAZWASTRONYDYSKUSJI|Template_ _ talk:_ :_ Strona_ _ projektu_ _ Wikibooksa|klucz projektu=en:w}}}} === {{Code|m.BAZOWANAZWASTRONYDYSKUSJI}} === ==== Odpowiednik szablonowy ==== Odpowiednik szablonowy jest pod nazwą {{s|BAZOWANAZWASTRONYDYSKUSJI}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. ==== Funkcja biblioteczna ==== Jest to funkcja, z której z pełnej nazwy strony nie jest ucinana przestrzeń nazw, tylko zamieniana na nazwę dyskusji (o numerze {{Code|id}} nieparzystym), ale za to jest odejmowana nazwa podstrony, wtedy zostaje pełna nazwa strony nadrzędna, czyli zwraca nazwę bazową strony z nazwą przestrzeni nazw tego typu, czyli bezpośredniego rodzica w drzewie adresów stron, nie zważając na rodzaj przestrzeni. <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_2 = "SZABLON:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Szablon": local pelna_nazwa_strony_3 = "TEMPLATE:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Dyskusja szablonu": local pelna_nazwa_strony_3 = "Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Dyskusja:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_1 = nazwy_modul.BAZOWANAZWASTRONYDYSKUSJI(pelna_nazwa_strony_1,tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "Dyskusja szablonu:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_2 = nazwy_modul.BAZOWANAZWASTRONYDYSKUSJI(pelna_nazwa_strony_2,tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Dyskusja szablonu:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_3 = nazwy_modul.BAZOWANAZWASTRONYDYSKUSJI(pelna_nazwa_strony_3,tabela_nazw_3); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Dyskusja szablonu:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_4 = nazwy_modul.BAZOWANAZWASTRONYDYSKUSJI(pelna_nazwa_strony_4,tabela_nazw_4); </syntaxhighlight> Dla funkcji z kodami języka i projektu, charakteryzujące dany projekt siostrzany, polskiego Wikibooksa, w różnych wersjach językowych, czyli {{Code|["klucz projektu"] {{=}} "en:w"}}, lub podana w postaci dwóch osobnych zmiennych, czyli {{Code|["kod języka"] {{=}} "en"}} i {{Code|["kod projektu"] {{=}} "w"}}: <syntaxhighlight lang="lua"> local nazwy_modul=require("Module:Nazwy"); -- Pełna nazwa strony w przestrzeni głównej: local pelna_nazwa_strony_1 = "Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Talk": local pelna_nazwa_strony_2 = "Talk:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Template": local pelna_nazwa_strony_3 = "Template:Strona/Poziom_1/Poziom_2/Poziom_3"; -- Pełna nazwa strony w przestrzeni "Template talk": local pelna_nazwa_strony_4 = "Template talk:Strona/Poziom_1/Poziom_2/Poziom_3"; local tabela_nazw_1={}; -- Wynikiem jest nazwa strony o wartości: "Talk:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_1 = nazwy_modul.BAZOWANAZWASTRONYDYSKUSJI({nazwa = pelna_nazwa_strony_1, ["klucz projektu"] = "en:w", }, tabela_nazw_1); local tabela_nazw_2={}; -- Wynikiem jest nazwa strony o wartości: "TalkLStrona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_2 = nazwy_modul.BAZOWANAZWASTRONYDYSKUSJI({nazwa = pelna_nazwa_strony_2, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_3={}; -- Wynikiem jest nazwa strony o wartości: "Template talk:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_3 = nazwy_modul.BAZOWANAZWASTRONYDYSKUSJI({nazwa = pelna_nazwa_strony_3, ["klucz projektu"] = "en:w", },tabela_nazw_2); local tabela_nazw_4={}; -- Wynikiem jest nazwa strony o wartości: "Template talk:Strona/Poziom_1/Poziom_2": local pelna_bazowa_nazwa_strony_4 = nazwy_modul.BAZOWANAZWASTRONYDYSKUSJI({nazwa = pelna_nazwa_strony_4, ["klucz projektu"] = "en:w", },tabela_nazw_2); </syntaxhighlight> Przykłady dla szablonu {{s|BAZOWANAZWASTRONYDYSKUSJI}}: * {{Code|{{s|BAZOWANAZWASTRONYDYSKUSJI|Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{BAZOWANAZWASTRONYDYSKUSJI|Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|BAZOWANAZWASTRONYDYSKUSJI|Szablon:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{BAZOWANAZWASTRONYDYSKUSJI|Szablon:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|BAZOWANAZWASTRONYDYSKUSJI|Template:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{BAZOWANAZWASTRONYDYSKUSJI|Template:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|BAZOWANAZWASTRONYDYSKUSJI|Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{BAZOWANAZWASTRONYDYSKUSJI|Dyskusja szablonu:Strona/Poziom_1/Poziom_2/Poziom_3}}}} * {{Code|{{s|BAZOWANAZWASTRONYDYSKUSJI|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3}}}} → {{Tt|{{BAZOWANAZWASTRONYDYSKUSJI|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3}}}} Z kodami reprezentujące poszczególne projekty: * {{Code|{{s|BAZOWANAZWASTRONYDYSKUSJI|Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{BAZOWANAZWASTRONYDYSKUSJI|Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} * {{Code|{{s|BAZOWANAZWASTRONYDYSKUSJI|Template:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{BAZOWANAZWASTRONYDYSKUSJI|Template:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} * {{Code|{{s|BAZOWANAZWASTRONYDYSKUSJI|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu{{=}}en:w}}}} → {{Tt|{{BAZOWANAZWASTRONYDYSKUSJI|Template talk:Strona/Poziom_1/Poziom_2/Poziom_3|klucz projektu=en:w}}}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pgoskwqkvpdb4v2zdc1nxywffcnvycw Wikibooks:Moduły/Ramka 4 63231 555551 553837 2026-09-10T23:21:21Z Persino 2851 555551 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramkki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} * Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica: ** {{Code|Nazwa}} {{Patrz|Nazwa}} - jest to pełna nazwa szablonu, modułu, czy parsera, ** {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, ** {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, ** {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, ** {{Code|potomek}} {{Patrz|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, ** {{Code|nie potomek}} {{Patrz|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). ** {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. ** {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, ** {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} - zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, ** {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} - jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, ** {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, ** {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} - parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, ** {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, ** {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, ** {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} - parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. * {{Code|Funkcja}} {{Patrz|Funkcja}} - nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} - pewna tablica transportu funkcji. * Zmienne do mikroszablonów: ** {{Code|minimum}} {{Patrz|minimum}} - liczba mówiąca o minimum, ** {{Code|maksimum}} {{Patrz|maksimum}} - liczba mówiąca o maksimum. Parametry ramki funkcji tablicy transportu modułu: * {{Code|akapit}} {{Patrz|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, * {{Code|przecinek}} {{Patrz|przecinek}} - jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, * {{Code|nowa linia}} {{Patrz|nowa linia}} - w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, * {{Code|wyliczanka}} {{Patrz|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, * {{Code|początek}} {{Patrz|początek}} - mówi, że na początku musi znajdować się przecinek, * {{Code|myślnik}} {{Patrz|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, * {{Code|warunkowe}} {{Patrz|warunkowe}} - instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, ** {{Code|parametr}} {{Patrz|parametr}} - używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. ** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: * {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, * {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> * {{Code|ciag}} {{Patrz|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, * {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, * {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych. Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|args}} {{Patrz|args}} - tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} - tablica {{lpg|JSON}}. Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} * {{Code|start}} {{Patrz|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, * {{Code|koniec}} {{Patrz|koniec}} - liczba, która wskazuje koniec liczenia. ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mk0o35m4snh5i67ckr4x7dv6hzdqi0s 555560 555551 2026-09-10T23:46:30Z Persino 2851 /* {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} */ 555560 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} * Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica: ** {{Code|Nazwa}} {{Patrz|Nazwa}} - jest to pełna nazwa szablonu, modułu, czy parsera, ** {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, ** {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, ** {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, ** {{Code|potomek}} {{Patrz|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, ** {{Code|nie potomek}} {{Patrz|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). ** {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. ** {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, ** {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} - zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, ** {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} - jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, ** {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, ** {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} - parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, ** {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, ** {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, ** {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} - parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. * {{Code|Funkcja}} {{Patrz|Funkcja}} - nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} - pewna tablica transportu funkcji. * Zmienne do mikroszablonów: ** {{Code|minimum}} {{Patrz|minimum}} - liczba mówiąca o minimum, ** {{Code|maksimum}} {{Patrz|maksimum}} - liczba mówiąca o maksimum. Parametry ramki funkcji tablicy transportu modułu: * {{Code|akapit}} {{Patrz|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, * {{Code|przecinek}} {{Patrz|przecinek}} - jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, * {{Code|nowa linia}} {{Patrz|nowa linia}} - w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, * {{Code|wyliczanka}} {{Patrz|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, * {{Code|początek}} {{Patrz|początek}} - mówi, że na początku musi znajdować się przecinek, * {{Code|myślnik}} {{Patrz|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, * {{Code|warunkowe}} {{Patrz|warunkowe}} - instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, ** {{Code|parametr}} {{Patrz|parametr}} - używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. ** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: * {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, * {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> * {{Code|ciag}} {{Patrz|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, * {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, * {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych. Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|args}} {{Patrz|args}} - tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} - tablica {{lpg|JSON}}. Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} * {{Code|start}} {{Patrz|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, * {{Code|koniec}} {{Patrz|koniec}} - liczba, która wskazuje koniec liczenia. ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> bhuczvuyo4jfxy6c3t29honjrxh5588 555574 555560 2026-09-11T00:37:51Z Persino 2851 555574 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} - pewna tablica transportu funkcji. * Zmienne do mikroszablonów: ** {{Code|minimum}} {{Patrz|minimum}} - liczba mówiąca o minimum, ** {{Code|maksimum}} {{Patrz|maksimum}} - liczba mówiąca o maksimum. Parametry ramki funkcji tablicy transportu modułu: * {{Code|akapit}} {{Patrz|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, * {{Code|przecinek}} {{Patrz|przecinek}} - jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, * {{Code|nowa linia}} {{Patrz|nowa linia}} - w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, * {{Code|wyliczanka}} {{Patrz|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, * {{Code|początek}} {{Patrz|początek}} - mówi, że na początku musi znajdować się przecinek, * {{Code|myślnik}} {{Patrz|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, * {{Code|warunkowe}} {{Patrz|warunkowe}} - instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, ** {{Code|parametr}} {{Patrz|parametr}} - używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. ** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: * {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, * {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> * {{Code|ciag}} {{Patrz|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, * {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, * {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych. Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|args}} {{Patrz|args}} - tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} - tablica {{lpg|JSON}}. Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} * {{Code|start}} {{Patrz|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, * {{Code|koniec}} {{Patrz|koniec}} - liczba, która wskazuje koniec liczenia. ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ihf05da481yenln0l8sf0vqbwzynvcu 555577 555574 2026-09-11T00:48:41Z Persino 2851 555577 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _2 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} - jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} - w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} - mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | 8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | 9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> * {{Code|ciag}} {{Patrz|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, * {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, * {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych. Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|args}} {{Patrz|args}} - tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} - tablica {{lpg|JSON}}. Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} * {{Code|start}} {{Patrz|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, * {{Code|koniec}} {{Patrz|koniec}} - liczba, która wskazuje koniec liczenia. ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> cvx6xqaj1yjo1818ma63z1sjrucpswf 555578 555577 2026-09-11T00:51:03Z Persino 2851 555578 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _2 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> * {{Code|ciag}} {{Patrz|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, * {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, * {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych. Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|args}} {{Patrz|args}} - tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} - tablica {{lpg|JSON}}. Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} * {{Code|start}} {{Patrz|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, * {{Code|koniec}} {{Patrz|koniec}} - liczba, która wskazuje koniec liczenia. ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 69npc88djdbromp8ggcpgai7esn0kam 555579 555578 2026-09-11T00:52:03Z Persino 2851 /* {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} */ 555579 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> * {{Code|ciag}} {{Patrz|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, * {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, * {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych. Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|args}} {{Patrz|args}} - tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} - tablica {{lpg|JSON}}. Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} * {{Code|start}} {{Patrz|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, * {{Code|koniec}} {{Patrz|koniec}} - liczba, która wskazuje koniec liczenia. ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mthfj99bfdue6isi278bflgn2fvwiz7 555580 555579 2026-09-11T00:54:08Z Persino 2851 /* {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} */ 555580 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|args}} {{Patrz|args}} - tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} - tablica {{lpg|JSON}}. Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} * {{Code|start}} {{Patrz|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, * {{Code|koniec}} {{Patrz|koniec}} - liczba, która wskazuje koniec liczenia. ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8pcjjo8rhdm31817z1e0jicxnj6huhk 555581 555580 2026-09-11T00:55:23Z Persino 2851 /* {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} */ 555581 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: * {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} - tablica {{lpg|JSON}}. Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} * {{Code|start}} {{Patrz|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, * {{Code|koniec}} {{Patrz|koniec}} - liczba, która wskazuje koniec liczenia. ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mk0x9qvrcsnq8jg6p84atnzfhzadnxa 555582 555581 2026-09-11T00:56:27Z Persino 2851 /* {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} */ 555582 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} * {{Code|start}} {{Patrz|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, * {{Code|koniec}} {{Patrz|koniec}} - liczba, która wskazuje koniec liczenia. ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> so9sueqreote5rmkqamdkst57zogfbt 555583 555582 2026-09-11T00:57:39Z Persino 2851 /* {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} */ 555583 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} * {{Code|start}} {{Patrz|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, * {{Code|koniec}} {{Patrz|koniec}} - liczba, która wskazuje koniec liczenia. ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> d22nv71oymrybwg2jt42y0r8fplfth6 555584 555583 2026-09-11T01:00:16Z Persino 2851 555584 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}. Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} * {{Code|start}} {{Patrz|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, * {{Code|koniec}} {{Patrz|koniec}} - liczba, która wskazuje koniec liczenia. ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ri5ggbdvj475l7z98ks86my3ofelgnk 555585 555584 2026-09-11T01:02:04Z Persino 2851 /* {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} */ 555585 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} * {{Code|parametry}} - lista parametrów oddzielonych średnikiem, * {{Code|pozycja}} - szukana lista w tablicy parametrów, * {{Code|od dużej}} - czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 17edwl2bfcnofnmumxlom0pwopz4s2k 555586 555585 2026-09-11T01:06:16Z Persino 2851 /* {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} */ 555586 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa nazwowa parametru numerowanego, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tej liczby. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = lista parametrów oddzielonych średnikiem, | 2 = {{Code|pozycja}} | _2= szukana lista w tablicy parametrów, | 3 = {{Code|od dużej}} | _3 = czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jbhn5ezsdd2l3n3p46d4wbi93g4xwey 555587 555586 2026-09-11T01:07:08Z Persino 2851 /* {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} */ 555587 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} * {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym, * {{Code|numerowane}} - czy ma wliczać parametry numerowane do tego numeru. Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa nazwowa parametru numerowanego, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = lista parametrów oddzielonych średnikiem, | 2 = {{Code|pozycja}} | _2= szukana lista w tablicy parametrów, | 3 = {{Code|od dużej}} | _3 = czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ib1odc5n5k487g4flmbrb3i0qq2ge5z 555589 555587 2026-09-11T01:08:45Z Persino 2851 /* {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} */ 555589 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} * {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa parametru numerowanego liczbami lub ciągiem pustym, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa nazwowa parametru numerowanego, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = lista parametrów oddzielonych średnikiem, | 2 = {{Code|pozycja}} | _2= szukana lista w tablicy parametrów, | 3 = {{Code|od dużej}} | _3 = czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qivlcyc91a0ygabpsfhz63s62h85xn7 555591 555589 2026-09-11T01:14:41Z Persino 2851 /* {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} */ 555591 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, | 2 = {{Code|łącznik}} | _2 = szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, | 3 = {{Code|nowa linia}} | _3 = szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, | 5 = {{Code|przeskok}} | _5 = dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,|nagłówek4=tak | 6 = {{Code|nie rozwiń}} | 6 = niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, | 7 = {{Code|1}} | 7 = aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa parametru numerowanego liczbami lub ciągiem pustym, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa nazwowa parametru numerowanego, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = lista parametrów oddzielonych średnikiem, | 2 = {{Code|pozycja}} | _2= szukana lista w tablicy parametrów, | 3 = {{Code|od dużej}} | _3 = czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ect818mn5jenupde0ls5127v3kflpmc 555592 555591 2026-09-11T01:16:04Z Persino 2851 /* {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} */ 555592 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, | 2 = {{Code|łącznik}} | _2 = szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, | 3 = {{Code|nowa linia}} | _3 = szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, | 5 = {{Code|przeskok}} | _5 = dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,|nagłówek4=tak | 6 = {{Code|nie rozwiń}} | 6 = niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, | 7 = {{Code|1}} | 7 = aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry fubkcji{{dk}} * {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami. : Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}. === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa parametru numerowanego liczbami lub ciągiem pustym, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa nazwowa parametru numerowanego, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = lista parametrów oddzielonych średnikiem, | 2 = {{Code|pozycja}} | _2= szukana lista w tablicy parametrów, | 3 = {{Code|od dużej}} | _3 = czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7csns8jbvjzi4yacdg0df98mtf0q2fy 555593 555592 2026-09-11T01:17:43Z Persino 2851 /* {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} */ 555593 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, | 2 = {{Code|łącznik}} | _2 = szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, | 3 = {{Code|nowa linia}} | _3 = szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, | 5 = {{Code|przeskok}} | _5 = dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,|nagłówek4=tak | 6 = {{Code|nie rozwiń}} | 6 = niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, | 7 = {{Code|1}} | 7 = aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} * {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), * {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego. : Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = wielopoziomowy adres z ewentualnie prawymi ukośnikami. | 2 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.|nagłówek2=tak }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa parametru numerowanego liczbami lub ciągiem pustym, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa nazwowa parametru numerowanego, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = lista parametrów oddzielonych średnikiem, | 2 = {{Code|pozycja}} | _2= szukana lista w tablicy parametrów, | 3 = {{Code|od dużej}} | _3 = czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8ga76i3x3twykvp7c39jlz1bjhai5ss 555594 555593 2026-09-11T01:19:17Z Persino 2851 /* {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} */ 555594 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, | 2 = {{Code|łącznik}} | _2 = szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, | 3 = {{Code|nowa linia}} | _3 = szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, | 5 = {{Code|przeskok}} | _5 = dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,|nagłówek4=tak | 6 = {{Code|nie rozwiń}} | 6 = niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, | 7 = {{Code|1}} | 7 = aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, * {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}. Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. | 3 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.|nagłówek3 =tak }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = wielopoziomowy adres z ewentualnie prawymi ukośnikami. | 2 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.|nagłówek2=tak }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa parametru numerowanego liczbami lub ciągiem pustym, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa nazwowa parametru numerowanego, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = lista parametrów oddzielonych średnikiem, | 2 = {{Code|pozycja}} | _2= szukana lista w tablicy parametrów, | 3 = {{Code|od dużej}} | _3 = czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> eeazduokpp67gracrjp0543yywfanbi 555595 555594 2026-09-11T01:21:17Z Persino 2851 /* {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} */ 555595 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} * {{Code|start}} - początek iteracji dokonywany przez ta funkcję, * {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję, * {{Code|krok}} - krok iteracji, co który numer ma iterować, * {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, * {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, * {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, ** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku, * {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, * {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} * {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}}, * {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, * {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}. ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} * {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, | 2 = {{Code|łącznik}} | _2 = szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, | 3 = {{Code|nowa linia}} | _3 = szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, | 5 = {{Code|przeskok}} | _5 = dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,|nagłówek4=tak | 6 = {{Code|nie rozwiń}} | 6 = niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, | 7 = {{Code|1}} | 7 = aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = przyjmuje wartość {{Tt|1}}, | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. | 3 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.|nagłówek3 =tak }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = wielopoziomowy adres z ewentualnie prawymi ukośnikami. | 2 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.|nagłówek2=tak }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa parametru numerowanego liczbami lub ciągiem pustym, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa nazwowa parametru numerowanego, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = lista parametrów oddzielonych średnikiem, | 2 = {{Code|pozycja}} | _2= szukana lista w tablicy parametrów, | 3 = {{Code|od dużej}} | _3 = czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 54azuooyvvf38f2814nbk5yxdygowsp 555596 555595 2026-09-11T01:30:15Z Persino 2851 /* {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} */ 555596 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = początek iteracji dokonywany przez ta funkcję, | 2 = {{Code|koniec}} | _2 = koniec iteracji dokonywany przez ta funkcję, | 3 = {{Code|krok}} | _3 = krok iteracji, co który numer ma iterować, | 4 = {{Code|łącznik}} |_4 = szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, | 5 = {{Code|nowa linia}} |_5 = szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, | 7 = {{Code|przeskok}} | _7 = dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,|nagłówek6=tak | 8 = {{Code|nie rozwiń}} | _8 = niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, | 9 = {{Code|1}} | _9 = aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = przyjmuje wartość {{Tt|1}}, | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, | 2 = {{Code|łącznik}} | _2 = szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, | 3 = {{Code|nowa linia}} | _3 = szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, | 5 = {{Code|przeskok}} | _5 = dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, | 4 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,|nagłówek4=tak | 6 = {{Code|nie rozwiń}} | 6 = niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, | 7 = {{Code|1}} | 7 = aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = przyjmuje wartość {{Tt|1}}, | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. | 3 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.|nagłówek3 =tak }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = wielopoziomowy adres z ewentualnie prawymi ukośnikami. | 2 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.|nagłówek2=tak }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa parametru numerowanego liczbami lub ciągiem pustym, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa nazwowa parametru numerowanego, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = lista parametrów oddzielonych średnikiem, | 2 = {{Code|pozycja}} | _2= szukana lista w tablicy parametrów, | 3 = {{Code|od dużej}} | _3 = czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> e182p0aao6f2aeakpp8ky0k4uwsshfh 555597 555596 2026-09-11T01:31:42Z Persino 2851 /* {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} */ 555597 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = początek iteracji dokonywany przez ta funkcję, | 2 = {{Code|koniec}} | _2 = koniec iteracji dokonywany przez ta funkcję, | 3 = {{Code|krok}} | _3 = krok iteracji, co który numer ma iterować, | 4 = {{Code|łącznik}} |_4 = szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, | 5 = {{Code|nowa linia}} |_5 = szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, | 7 = {{Code|przeskok}} | _7 = dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,|nagłówek6=tak | 8 = {{Code|nie rozwiń}} | _8 = niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, | 9 = {{Code|1}} | _9 = aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = przyjmuje wartość {{Tt|1}}, | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, | 2 = {{Code|łącznik}} | _2 = szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, | 3 = {{Code|nowa linia}} | _3 = szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, | 4 = {{Code|przeskok}} | _4 = dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, | 5 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,|nagłówek5=tak | 6 = {{Code|nie rozwiń}} | _6 = niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, | 7 = {{Code|1}} | _7 = aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = przyjmuje wartość {{Tt|1}}, | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. | 3 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.|nagłówek3 =tak }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = wielopoziomowy adres z ewentualnie prawymi ukośnikami. | 2 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.|nagłówek2=tak }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa parametru numerowanego liczbami lub ciągiem pustym, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa nazwowa parametru numerowanego, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = lista parametrów oddzielonych średnikiem, | 2 = {{Code|pozycja}} | _2= szukana lista w tablicy parametrów, | 3 = {{Code|od dużej}} | _3 = czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ix832yftoj15oepykvwugo5up5k830i 555598 555597 2026-09-11T01:35:13Z Persino 2851 /* {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} */ 555598 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = jest to pełna nazwa szablonu, modułu, czy parsera, | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są, | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki, | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję, | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka, | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję, | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}, | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki, | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkiem, | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami, | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}, | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = liczba mówiąca o minimum, | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity, | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja, | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = w przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}, | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}, | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = mówi, że na początku musi znajdować się przecinek, | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}, | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}, | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = a tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek, | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej, | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}, | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = początek iteracji dokonywany przez ta funkcję, | 2 = {{Code|koniec}} | _2 = koniec iteracji dokonywany przez ta funkcję, | 3 = {{Code|krok}} | _3 = krok iteracji, co który numer ma iterować, | 4 = {{Code|łącznik}} |_4 = szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, | 5 = {{Code|nowa linia}} |_5 = szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, | 7 = {{Code|przeskok}} | _7 = dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,|nagłówek6=tak | 8 = {{Code|nie rozwiń}} | _8 = niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, | 9 = {{Code|1}} | _9 = aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = przyjmuje wartość {{Tt|1}}, | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami, | 2 = {{Code|łącznik}} | _2 = szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty, | 3 = {{Code|nowa linia}} | _3 = szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany, | 4 = {{Code|przeskok}} | _4 = dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg, | 5 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,|nagłówek5=tak | 6 = {{Code|nie rozwiń}} | _6 = niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}, | 7 = {{Code|1}} | _7 = aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = przyjmuje wartość {{Tt|1}}, | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}, | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji, | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. | 3 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.|nagłówek3 =tak }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = wielopoziomowy adres z ewentualnie prawymi ukośnikami. | 2 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.|nagłówek2=tak }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym), | 2 = {{Code|wzór}} | _2 = wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa parametru numerowanego liczbami lub ciągiem pustym, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = podstawa nazwowa parametru numerowanego, | 2 = {{Code|numerowane}} | _2 = czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = lista parametrów oddzielonych średnikiem, | 2 = {{Code|pozycja}} | _2= szukana lista w tablicy parametrów, | 3 = {{Code|od dużej}} | _3 = czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> f0q3s5jwsiupfvehoesoqzo0atquxx5 555605 555598 2026-09-11T02:28:21Z Persino 2851 555605 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = funkcja ramki funkcji tablica transportu modułu, | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = Zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki. | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}. | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkie. | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku...|nagłówek6=tak | 8 = {{Code|nie rozwiń}} | _8 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 9 = {{Code|1}} | _9 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = {{Code|przeskok}} | _4 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 5 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku...|nagłówek5=tak | 6 = {{Code|nie rozwiń}} | _6 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 7 = {{Code|1}} | _7 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. | 3 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero...|nagłówek3 =tak }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. | 2 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}...|nagłówek2=tak }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ndi2zeu822n1om5a1iyhoyweo5gn4vh 555606 555605 2026-09-11T02:28:56Z Persino 2851 /* {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} */ 555606 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków, | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = Zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki. | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}. | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkie. | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku...|nagłówek6=tak | 8 = {{Code|nie rozwiń}} | _8 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 9 = {{Code|1}} | _9 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = {{Code|przeskok}} | _4 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 5 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku...|nagłówek5=tak | 6 = {{Code|nie rozwiń}} | _6 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 7 = {{Code|1}} | _7 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. | 3 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero...|nagłówek3 =tak }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. | 2 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}...|nagłówek2=tak }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> lqpwmrl5odhzl4bpyckywy74jjkvy3v 555607 555606 2026-09-11T02:29:48Z Persino 2851 /* {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} */ 555607 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków. | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = Zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki. | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}. | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkie. | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}, | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku. | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku...|nagłówek6=tak | 8 = {{Code|nie rozwiń}} | _8 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 9 = {{Code|1}} | _9 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = {{Code|przeskok}} | _4 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 5 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku...|nagłówek5=tak | 6 = {{Code|nie rozwiń}} | _6 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 7 = {{Code|1}} | _7 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. | 3 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero...|nagłówek3 =tak }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. | 2 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}...|nagłówek2=tak }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> i6ekqasfsrwfs1d5q4xjgwbmown1m3w 555608 555607 2026-09-11T02:32:09Z Persino 2851 /* {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} */ 555608 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków. | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = Zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki. | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}. | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkie. | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}. | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku: | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku...|nagłówek6=tak | 8 = {{Code|nie rozwiń}} | _8 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 9 = {{Code|1}} | _9 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = {{Code|przeskok}} | _4 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 5 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku...|nagłówek5=tak | 6 = {{Code|nie rozwiń}} | _6 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 7 = {{Code|1}} | _7 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. | 3 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero...|nagłówek3 =tak }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. | 2 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}...|nagłówek2=tak }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> s6v83gsqt8qwtmcnycue398rx1i27tb 555609 555608 2026-09-11T02:35:41Z Persino 2851 /* {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} */ 555609 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Ramka}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local ramka_modul=require("Module:Ramka"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje, w tym module, uruchamia się tylko w ramce w szablonie, bo są tylko do tego przygotowane. One służą do powtarzania parametrów rodzica, czy przodka, iteracji pojedynczego kroku wikikodu, jakiś sprawdzeń, do liczenia odpowiedników i związanych z tym parametrami, itp.. == Funcje lokalne modułu == === {{Śródtytuł|ParserBlokowy}}{{Code|ParserBlokowy}} === Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tylko w module {{Code|{{ld2|Ramka}}}}, szablonów, modułów i parserów w ramce. Uruchamiana jest przez funkcje: {{LinkŚródtytuł|p.Szablon}} - funkcja do uruchamiania szablonów, {{LinkŚródtytuł|p["Moduł"]}} - funkcja do uruchamiania modułów, i {{LinkŚródtytuł|p.Parser}} - funkcja do uruchamiania parserów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ParserBlokowy(frame, co_ma_wywolac)...end; </syntaxhighlight> ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|frame}} {{Patrz|frame}} | _1 = Funkcja ramki funkcji tablica transportu modułu. | 2 = {{Code|co_ma_wywolac}} {{Patrz|co_ma_wywolac}} | _2 = Ten parametr przyjmuje wartość liczbową, która jeżeli {{Tt|0}} - to uruchamiany jest szablon, jeżeli {{Tt|1}} - moduł, jeżeli {{Code|2}} - to parser, jeżeli on ma inne wartości, tzn.: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon. }} ; Parametry ramki funkcji tablicy transportu modułu{{dk}} {{OpisParametrów | 1 = Parametry podstawowe - parametry ramki, niezawsze parametry przekazywane obiektowi w ramce, czasami od rodzica:|nagłówek1=tak | 2 = {{Code|Nazwa}} {{Patrz|Nazwa}} | _2 = Jest to pełna nazwa szablonu, modułu, czy parsera. | 3 = {{Code|bez argumentów rodzica}} {{Patrz|bez argumentów rodzica}} | _3 = Tablica parametrów oddzielonych średnikami, których obiekt uruchamiany nie może przyjmować, nawet jeżeli one są. | 4 = {{Code|nazwa szablonu rodzica}} {{Patrz|nazwa szablonu rodzica}} | _4 = Jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,a nawet któreś z jego przodków. | 5 = {{Code|bez argumentów nienazwanych rodzica}} {{Patrz|bez argumentów nienazwanych rodzica}} | _5 = szablon w ramce nie przyjmuje parametrów nienazwanych, określonych liczbą, podanych w rodzicu ramki. | 6 = {{Code|potomek}} {{Patrz|potomek}} | _6 = Zmienna mówiąca, że to jest potomek rodzica ramki, tą zmienną podaje się w parametrze {{Code|bez argumentów rodzica}} {{LinkPatrz|bez argumentów rodzica}}, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję, tej zmiennej nie używa się bezpośrednio w kodzie ramki, sama ta ramka tworzy automatycznie ten niepusty parametr, jedynie go można użyć przy wielopoziomowym przekazywaniu parametrów rodzica, do ustawiania pewnych wartości prametrów w budowanych w tą funkcję. | 7 = {{Code|nie potomek}} {{Patrz|nie potomek}} | _7 = Zmienna mówiąca, że to nie jest potomek szablonu, używana, gdy nie jest określona istniejąca zmienna ramki {{LinkPatrz|zmienna z parametrami rodzica}}, wtedy taka ramka jest traktowana jak normalna ramka, której jedynie trzeba przekazać parametry rodzica, nie przodka, wtedy do niej nie są przekazywane parametry: {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} (ta zmienna jest wtedy ustawiana, gdy nie jest niepusty parametr {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}), {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}} i {{LinkPatrz|potomek}} (ustawiany na stałą wartość niepustą). Jeżeli zmienna ogólnie {{Code|nie potomek}} {{LinkPatrz|nie potomek}} tam została podana, lub nie, wtedy zawsze {{Code|nazwa szablonu rodzic}} {{LinkPatrz|nazwa szablonu rodzica}} (jeśli ta wartość rodzica nie istnieje, to nadawana jest jej aktualna nazwa szablonu rodzica, a nie przodka, normalnie jest to przodka, a w szczególności rodzica). | 8 = {{Code|bez argumentów szablonu}} {{Patrz|bez argumentów szablonu}} | _8 = Zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}}, ta tablica jest wkładana do parametrów ramki, gdy nie podany jest niepusty parametr w niej {{Code|zmienna z argumentami ramki}} {{LinkPatrz|zmienna z argumentami ramki}}, a jeżeli ten argument jednak jest niepusty, wtedy do tej zmiennej są wliczane parametry ramki, które nie są argumentami wbudowanymi w tą funkcję. | 9 = {{Code|bez dodatkowych sprawdzeń}} {{Patrz|bez dodatkowych sprawdzeń}} | _9 = Nie jest uruchamiana walidacja parametrów szablonu rodzica, czyli wtedy do dziecka nie jest przekazywany parametr {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} i nie jest ustawiana zmienna, ale za to ten parametr jest powtarzany w parametrach dziecka. | 10 = {{Code|parametry rodzica}} {{Patrz|parametry rodzica}} | _10 = Zmienna przedstawiająca parametry rodzica, czy któreś ze przodków, przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję. | 11 = {{Code|zmienna z parametrami rodzica}} {{Patrz|zmienna z parametrami rodzica}} | _11 = Jeśli wartość jego jest niepusta, wtedy parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}} jest przekazywana do dziecka w postaci wygenerowanej listy parametrów rodzica wraz z zwartościami przez funkcję, w przypadku innej jego wartości, to ten parametr rodzica jest przekazywany normalnie, jeżeli ta ramka byłaby potomkiem, czyli parametry byłyby przekazywane od przodka, i nie byłby ustawiony parametr {{Code|nie potomek}} {{LinkPatrz|nie potomek}}. | 12 = {{Code|zmienna z argumentami ramki}} {{Patrz|zmienna z argumentami ramki}} | _12 = Zmienna mówiąca, czy mają być tworzone parametry ramki, które nie są sprawdzane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki. | 13 = {{Code|zmienna z nazwą szablonu rodzica}} {{Patrz|zmienna z nazwą szablonu rodzica}} | _13 = Parametr, gdy niepusty, wtedy jest tworzona zmienna: {{LinkPatrz|nazwa szablonu rodzica}}, niepusty parametr {{Code|potomek}} {{LinkPatrz|potomek}}, tworzona jest niepusta lista parametrów {{Code|bez argumentów szablonu}} {{LinkPatrz|bez argumentów szablonu}}, powtarzana jest zmienna {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}, i tworzona jest dodatkowa parametr z {{Code|parametry rodzica}} {{LinkPatrz|parametry rodzica}}, jeśli nie podano niepustego parametru {{Code|bez dodatkowych sprawdzeń}} {{LinkPatrz|bez dodatkowych sprawdzeń}}. | 14 = {{Code|parametry funkcji modułu pudełek}} {{Patrz|parametry funkcji modułu pudełek}} | _14 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, które są ponumerowane, jak i nie, dodatkowym numerkie. | 15 = {{Code|parametry podstawowe funkcji modułu pudełek}} {{Patrz|parametry podstawowe funkcji modułu pudełek}} | _15 = Czy do funkcji mają wchodzić tylko parametry modułu pudełek, te które nie mają tego dodatkowego numerka, nie tak, jak to było w: {{Code|parametry funkcji modułu pudełek}} {{LinkPatrz|parametry funkcji modułu pudełek}}, dzięki któremu temu, były wkładane do ramki z rodzica oby dwa te rodzaje argumentów z ich wartościami. | 16 = {{Code|usuń z parametrów ramki}} {{Patrz|usuń z parametrów ramki}} | _16 = Parametry ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przedstawiający zmienne oddzielone średnikami, które nie mają być uwzględnione przy uruchamianiu danego obiektu. | 17 = Parametry ramek, modułu {{lpg|Lua}} {{lpr|Lua|Scribunto}}, dla funkcji: | nagłówek17 = tak | 18 = {{Code|Funkcja}} {{Patrz|Funkcja}} | _18 = Nazwa funkcji w module, który ma wywołać w ramce ta funkcja, w przypadku, gdy parametr {{LinkPatrz|co_ma_wywolac}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{LinkŚródtytuł|p["Moduł"]}}. }} Funkcja uruchamia szablon, moduł, czy ramkę, w zależności od drugiego parametru funkcji, z parametrami rodzica ramki bez parametrów opisanych zmienną: {{LinkPatrz|bez argumentów szablonu}}, i bez parametrów ramki wskazanych przez: {{Code|usuń z parametrów ramki}}. Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego. Ta funkcja służy przede wszystkim do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}}, {{s|CentrujWzór2}}, i inne, czyli do uruchamiania szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} (przyjmująca jedynie parametry ramki, nie rodzica, to nie jest funkcja {{m|Cytuj|auto}}, by potrzebowała ona elementów rodzica) w szablonie {{s|PrzypisStrona}}. Przykładem wywołania szablonu, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik, tzn. {{s|Wzór/silnik}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}} </syntaxhighlight> A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom | url = {{{adres}}}/{{{1|{{{podstrona}}}}}} | tytuł = {{{2|{{{nazwa}}}}}} | praca = {{lz | s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}} | n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}} }} | data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}} | data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}} }} </syntaxhighlight> === {{Śródtytuł|BudowaSzereguZDanych}}{{Code|BudowaSzereguZDanych}} === Funkcja do uruchamiania się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. | 2 = {{Code|tab_lancuch}} {{Patrz|tab_lancuch}} | _2 = Pewna tablica transportu funkcji. | 3 = Zmienne do mikroszablonów:|nagłówek3=tak | 4 = {{Code|minimum}} {{Patrz|minimum}} | _4 = Liczba mówiąca o minimum. | 5 = {{Code|maksimum}} {{Patrz|maksimum}} | _5 = Liczba mówiąca o maksimum. }} Parametry ramki funkcji tablicy transportu modułu: {{OpisParametrów | 1 = {{Code|akapit}} {{Patrz|akapit}} | _1 = Jeśli niepusta, to ona definiuje akapit ze znaków {{Code|\n\n}}, przeciwnym wypadku elementy łańcucha nie są łączone w akapity. | 2 = {{Code|przecinek}} {{Patrz|przecinek}} | _2 = Jeśli niepuste, to mówi, że pomiędzy elementami powiniem być przecinek: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przecinku znajduje się spacja. | 3 = {{Code|nowa linia}} {{Patrz|nowa linia}} | _3 = W przeciwieństwo do zmiennej {{LinkPatrz|akapit}}, używany zamiast niej, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}}. | 4 = {{Code|wyliczanka}} {{Patrz|wyliczanka}} | _4 = Wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}}. | 5 = {{Code|początek}} {{Patrz|początek}} | _5 = Mówi, że na początku musi znajdować się przecinek. | 6 = {{Code|myślnik}} {{Patrz|myślnik}} | _6 = Mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{LinkPatrz|początek}}. | 7 = Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku: | nagłówek7 = tak | 8 = {{Code|warunkowe}} {{Patrz|warunkowe}} | _8 = Instrukcje wikikodu, takie jak: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}, zostaną w kodzie rozwinięte, a później ciągłe właściwe elementy wikikodu otoczone dwoma dolnymi myślnikami zostaną rozwinięte do pewnej postaci, funkcja używa do tego {{LinkŚródtytuł|p.InstrukcjeWarunkowe}}. | 9 = {{Code|parametr}} {{Patrz|parametr}} | _9 = Używany w towarzystwie z {{LinkPatrz|warunkowe}}, mówiący że, derektywy znakowe ciągłe otoczone dwoma dolnymi myślnikami, zostaną zastąpione odpowiedmimi szablonami, w przeciwnym wypadku niepodania tej wartości lub jego pustej, wtedy te derektywy zostaną zastąpione w postaci rozwiniętej tych szablonów. }} Funkcja posiada też mikroszablony, które są zdefiniowane w kodzie łańcuchów {{LinkPatrz|tab_lancuch}}: {{OpisParametrów | 1 = {{Code|<nowiki>{{min}}</nowiki>}} | _1 = Minimalna wartość szeregu zmiennych, określana przez {{LinkPatrz|minimum}}. | 2 = {{Code|<nowiki>{{max}}</nowiki>}} | _2 = A tutaj ich maksymalna, określana przez {{LinkPatrz|maksimum}}. }} Te dwie zmienne są podstawiane do uzyskanego ciągu. Funkcja zwraca te części rozwiniętego tekstu wikikodu, jeśli podano {{LinkPatrz|warunkowe}}, co do instrukcji warunkowych, i też te bez wewnętrznych klamerek, czyli specjalne kody, czyli te otoczone z dwóch stron dolnumi myślnikami, a pozostałe część tak uzyskana jest za to nierozwinięta. == {{Śródtytuł|p.InstrukcjeWarunkowe}}{{Code|p.InstrukcjeWarunkowe}} == Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3 | nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon | komórka 1_1 = __!__ | komórka 1_2 = &#124; | komórka 1_3 = {{s|!}} | komórka 2_1 = __!!__ | komórka 2_2 = &#124;&#124; | komórka 2_3 = {{s|!!}} | komórka 3_1 = __(__ | komórka 3_2 = &#123; | komórka 3_3 = {{s|(}} | komórka 4_1 = __((__ | komórka 4_2 = &#123;&#123; | komórka 4_3 = {{s|((}} | komórka 5_1 = __(((__ | komórka 5_2 = &#123;&#123;&#123; | komórka 5_3 = {{s|(((}} | komórka 6_1 = __)__ | komórka 6_2 = &#125; | komórka 6_3 = {{s|)}} | komórka 7_1 = __))__ | komórka 7_2 = &#125;&#125; | komórka 7_3 = {{s|))}} | komórka 8_1 = __)))__ | komórka 8_2 = &#125;&#125;&#125; | komórka 8_3 = {{s|)))}} | komórka 9_1 = __!(__ | komórka 9_2 = &#91; | komórka 9_3 = {{s|!(}} | komórka 10_1 = __!((__ | komórka 10_2 = &#91;&#91; | komórka 10_3 = {{s|!((}} | komórka 11_1 = __)!__ | komórka 11_2 = &#93; | komórka 11_3 = {{s|)!}} | komórka 12_1 = __))!__ | komórka 12_2 = &#93;&#93; | komórka 12_3 = {{s|))!}} }} Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ciag}} {{Patrz|ciag}} | _1 = Podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek. | 2 = {{Code|derektywy_specjalne}} {{Patrz|derektywy_specjalne}} | _2 = Używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej. | 3 = {{Code|derektywy_parametrowe}} {{Patrz|derektywy_parametrowe}} | _3 = Czy używać pseudoszablonów zamiast ich odpowiedników znakowych. }} Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}. Ta funkcja jest używana przez: {{LinkŚródtytuł|BudowaSzereguZDanych}}, poprzez: {{LinkŚródtytuł|p.Powtarzaj}}. Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy: ; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}} * {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to. == Funkcje parametrów i argumentów == === {{Śródtytuł|p.RozpakujArgumenty}}{{Code|p.RozpakujArgumenty}} === Ta funkcja jest do rozpakowywania zmiennych z podanego parametru, których zmienne są oddzieloe średnikami. * Funkcja uruchamia się w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujArgumenty = function(zmienna_z_argumentami)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_argumentami}} | _1 = Parametr ze zmiennymi do rozpakowwania. }} Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje, wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik. === {{Śródtytuł|p.PakujParametry}}{{Code|p.PakujParametry}} === Ta funkcja jest do pakowania tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w tablicę {{lpg|JSON}}. * Funkcja się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{lpg|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji: <syntaxhighlight lang="lua"> p.PakujParametry = function(args) return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} {{Patrz|args}} | _1 = Tablica {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Ten szablon nazywa parametry, jakby nienazwane w tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonEncode}}, z drugim parametrem: {{Code|mw.text.JSON_PRESERVE_KEYS}} {{Patrz|mw.text.JSON_PRESERVE_KEYS}}. === {{Śródtytuł|p.RozpakujParametry}}{{Code|p.RozpakujParametry}} === Ta funkcja jest do rozpakowywania tablicy {{lpg|JSON}} w tablicę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}} * Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest w niej zwracany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.RozpakujParametry = function (zmienna_z_parametrami) return mw.text.jsonDecode(zmienna_z_parametrami,mw.text.JSON_PRESERVE_KEYS); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|zmienna_z_parametrami}} {{Patrz|zmienna_z_parametrami}} | _1 = Tablica {{lpg|JSON}}. }} Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{lpg|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}, z użyciem funkcji: {{LzLua|mw.text.jsonDecode}}, z użyciem drugiego parametru: {{LinkPatrz|mw.text.JSON_PRESERVE_KEYS}}. == {{Śródtytuł|p["Rozwiń"]}}{{Code|p["Rozwiń"]}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame)...end; </syntaxhighlight> Parameetry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon rozwija wikikod podany w zmiennej {{Code|1}}, w parametrach szablonu rodzica. * Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}}, * Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd.. Przykład wywołania funkcji: * {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p["Rozwiń"] = function(frame) return frame:getParent():preprocess(frame.args[1]); end; </syntaxhighlight> == {{Śródtytuł|p.Log}}{{Code|p.Log}} == Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Log = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana. Przykłady użycia funkcji: * {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość. Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}: <syntaxhighlight lang="lua"> p.Log = function(frame) local parametry_modul=require("Module:Parametry"); local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]); local wikitekst=frame.args["log"]; mw.log(wikitekst); return (czy_zwracac and wikitekst or ""); end; </syntaxhighlight> == Funkcje ramki tablicy transportu == === {{Śródtytuł|p.Szablon}}{{Code|p.Szablon}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}}, symbolizującego rozwijanie szablonu. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Szablon = function(frame) return ParserBlokowy(frame,0); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=<nazwa szablonu>|...}} </syntaxhighlight> === {{Śródtytuł|p["Moduł"]}}{{Code|p["Moduł"]}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}}, symbolizującego rozwijanie funkcji modułu ramki. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p["Moduł"] = function(frame) return ParserBlokowy(frame,1); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Moduł|Nazwa=<nazwa modułu>|Funkcja=<nazwa funkcji>|...}} </syntaxhighlight> === {{Śródtytuł|p.Parser}}{{Code|p.Parser}} === Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera. Definicja pełna funkcji: <syntaxhighlight lang="lua"> p.Parser = function(frame) return ParserBlokowy(frame,2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}. Funkcję uruchamia się w ramce szablonu, przykład: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Parser|Nazwa=<nazwa parsera>|...}} </syntaxhighlight> == Funkcje książkowe == === {{Śródtytuł|p.Q}}{{Code|p.Q}} === Funkcja uruchamiana we wnętrzu szablonu {{s|Q}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. * Jego specjalne odpowiedniki to {{s|T}} i {{s|T2}}. Funkcja uruchamia szablon o podanej nazwie w pierwszym parametrze z dodanym przedrostkiem {{Code|Książka:}} przed nazwą szablonu. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Q =function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}. Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (parametry nazwane, które są wliczane do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami. ==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ==== * {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} → {{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}} === {{Śródtytuł|p.N}}{{Code|p.N}} === Funkcja uruchamiana we wnętrzu szablonu {{s|N}}, która przyjmuje jego parametry bez {{Parametr|wyspecjalizowana}}, i tak samo działa, jak on. Funkcja przed nazwą szablonu, czy modułu, zostawia w wpis w postaci przedrostka {{Code|Książka:}}. Czy zostanie dodana przed tym nazwa przestrzeni nazw, to zależy od niepodania niepustej zmiennej {{Parametr|n}}, a zmienna {{Parametr|p|1}} - to przed nim jest dodawana przestrzeń nazw szablonu {{Np|Template|link=tak}}, {{Parametr|p|2}} - modułu {{Np|Module|link=tak}} i {{Parametr|p|3}} - kategorii. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.N=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające: * {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii. * {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ==== * {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}} * {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}} * {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}} === {{Śródtytuł|p.A}}{{Code|p.A}} === Funkcja uruchamiana we wnętrzu szablonu {{s|A}}, która przyjmuje jego parametry, i tak samo działa, jak on. Funkcja usuwa przedrostek {{Code|Książka:}} w nazwie szablonu, czy modułu. Gdy jest podany parametr: {{Parametr|p|tak}}, to dla przestrzeni niebędących: {{Np|Template|link=tak}}, {{Np|Module|link=tak}} i {{Np|Category|link=tak}}, jest zwracany wtedy przez nią parametr pierwszy funkcji. Dla tych wartości właśnie wyliczonych przestrzeni usuwany jest przedrostek {{Code|Książka:}}. Funkcja generuje nazwę z prestrzenią nazw. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.A=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}. Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające: * {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony. ==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ==== * {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}} == Funkcje powtarzania == === {{Śródtytuł|p.Powtarzaj}}{{Code|p.Powtarzaj}} === Funkcja służy do powtarzalnego generowania wikikodu ze składników jego kroku przy pomocy określonych zmiennych rodzica. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.Powtarzaj = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame}}. }} Funkcja może przyjmować tylko parametry nienazwane albo tylko nazwane, albo nienazwane i nazwane (gdy jest ustawiony parametr {{Code|różne}} {{Patrz|różne}}). Funkcja jako podany parametr pierwszy: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Powtarzaj|1=<wikikod>}} </syntaxhighlight> iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to: * {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}}, * {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję. Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}} {{LinkPatrz|różne}}, która wtedy ma wskazywać na wartość niepustą. ; Najważniejsze parametry, które są to opcjonalne, to są{{dk}} {{OpisParametrów | 1 = {{Code|start}} {{Patrz|start}} | _1 = Liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}}. | 2= {{Code|koniec}} {{Patrz|koniec}} | _2 = Liczba, która wskazuje koniec liczenia. }} ; Parametr {{Code|dodatkowe}} {{Patrz|dodatkowe}}{{dk}} * Te parametry nie są wliczane do maksimum parametrów nazwanych, dla jakieś podstawy razem wszystkich parametrów, są określone przez: {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami. Przykładem jego jest: * {{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}} : Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji. ; Numer końca liczenia parametrów nienazwanych lub nazwanych, czy nazwanychi nienazwanych{{dk}} * Elementy w {{Code|parametry}} {{Patrz|parametry}} mogą modyfikować odpowiednio parametry: {{Code|start}} {{LinkPatrz|start}} i {{Code|koniec}} {{LinkPatrz|koniec}}. * Ze zmiennej {{LinkPatrz|parametry}} jest liczona odpowiednia zmienna {{LinkPatrz|tabela}} dopuzczalnych zmiennych do liczenia. * Funkcja {{Code|Wylicz_skoncz_na_koncu}}, którego algorytm podany jest w tej funkcji, ona liczy odpowiedni koniec parametrów '''nienazwanych''' albo '''nazwanych - odpowiednich''' (bez parametrów {{Code|datkowe}} {{LinkPatrz|dodatkowe}}), albo maksimum parametrów '''nienazwanych''' i '''nazwanych - właściwych'''. W tej funkcji jest liczony koniec parametrów nienazwanych, jeżeli nie ma parametrów nazwanych w tabeli {{Code|tabela}} {{Patrz|tabela}}. A przeciwnie, jeżeli nie jest ustawiony parametr {{Code|różne}} {{LinkPatrz|różne}} nie na wartość niepustą, wtedy jest liczony parametr maksimum parametrów nazwanych, przeciwnie wtedy liczy się parametr maksimum numeracyjne parametrów numerowanych, czyli zmienną: {{Code|maksimum numeracyjne}} {{Patrz|maksimum numeracyjne}}, jeśli on ma wartość niepustą, wtedy liczy się maksimum parametrów nienazwanych, a jeżeli ona ma przeciwną wartość, to się liczy maksimum parametrów nazwanych, jak nienazwanych. Na podstawie tego mamy policzony odpowiednio taki koniec liczenia modyfikacji zwracany i policzony przez tą funkcję. ; Format parametru {{Parametr|parametry}}{{dk}} * Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami. * Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją. * Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest równa liczbie {{Code|5}}, oddzielonych średnikami. ; Opis parametru {{Parametr|parametry}}{{dk}} Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie: * element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji, * element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej, * element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany, * element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie, * element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia. Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych: {{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}} : Zamiast w wartościach: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, w których są pewne nazwy bazowe parametrów bez numerka na jej końcu, w zmiennej {{Code|parametry}} można nie podawać dalszych elementów po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać nawet tego znaku,gdy nic nie ma po równa się) dla danego problemu funkcji. ; Wikikod pojedynczego kroku liczenia całości wygenerowanego wikikodu dla wszystkich zmiennych{{dk}} * Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}. ; Parametr {{Parametr|start}}, wartość początkowa{{dk}} * Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}. ; Brak parametrów szablonu{{dk}} * A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji. ; Parametr {{Parametr|nic}}{{dk}} * Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może wygenerować żadnego kroku iteracji, to wtedy jest zwracana wartość parametru {{Code|nic}} lub ciąg pusty. ; Inne parametry{{dk}} * Parametr {{Code|po kolei}} {{Patrz|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy. * Parametr {{Code|zaznacz}} {{Patrz|zaznacz}} - liczby oddzielone średnikami, które przy parametrach nazwanych o pewnych numerach i numerkach nie mają być uwzględnione przy niepustym parametrze {{Code|po kolei}} {{LinkPatrz|po kolei}}, a przy jego przeciwnej wartości za to mają być użyte. * Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych. * Znacznik {{Code|_i}} {{Patrz|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}. Domyślną wartością {{Code|_i}} jest {{Code|_}}. ; W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wikikodami, wtedy ta funkcja używa do tego liczenia{{dk}} * Jest to funkcja {{LinkŚródtytuł|BudowaSzereguZDanych}}. * Wywołanie funkcji jest takie: {{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}} ; Parametry funkcji {{LinkŚródtytuł|BudowaSzereguZDanych}}. * One są wraz z jego parametrami podane w postaci jego parametrów ramki {{Code|frame}}, które jednocześnie są parametrami {{LinkŚródtytuł|p.Powtarzaj}}, używa się je do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{LzLua|frame:preprocess}}, i jest zwracany jako wartość omawianej funkcji. ; Przykłady{{dk}} * Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i do niego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}. === {{Śródtytuł|p.PowtarzajOdDo}}{{Code|p.PowtarzajOdDo}} === Funkcja służy do iteracji, od jakieś liczby do jakieś innej, podanego wikikodu dla danego kroku {{Code|1}}, iterując to, co krok określony zmienną: {{Code|krok}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PowtarzajOdDo=function(frame)...end; </syntaxhighlight> ; Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję{{dk}} {{nobold|{{Code|{{m|Ramka|Rozwiń}}}}}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Początek iteracji dokonywany przez ta funkcję. | 2 = {{Code|koniec}} | _2 = Koniec iteracji dokonywany przez ta funkcję. | 3 = {{Code|krok}} | _3 = Krok iteracji, co który numer ma iterować. | 4 = {{Code|łącznik}} |_4 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 5 = {{Code|nowa linia}} |_5 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 7 = {{Code|przeskok}} | _7 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 6 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku...|nagłówek6=tak | 8 = {{Code|nie rozwiń}} | _8 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 9 = {{Code|1}} | _9 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. }} ; Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku{{dk}} {{nobold|{{s|Chem/silnik}}}}, w tym nadrzędnym{{dk}} {{nobold|{{s|Chem}}}}, przykłady jego działania{{dk}} * {{Code|{{s|Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} → {{Tt|{{Chem|C|n|H|2n&nbsp;+&nbsp;2}}}} * {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}} * {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}} * {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}} * {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}} Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych. === {{Śródtytuł|p["PrzetwarzajIterującCiąg"]}}{{Code|p["PrzetwarzajIterującCiąg"]}} === Funkcja do iteracji wikikodu po parametrach oddzielonych średniami w parametrze ramki {{Code|ciąg}}. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwarzajIterującCiąg"]=function(frame)...end; </syntaxhighlight> ; Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi{{dk}} {{OpisParametrów | 1 = {{Code|ciąg}} | _1 = Lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami. | 2 = {{Code|łącznik}} | _2 = Szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty. | 3 = {{Code|nowa linia}} | _3 = Szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany. | 4 = {{Code|przeskok}} | _4 = Dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg. | 5 = Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku...|nagłówek5=tak | 6 = {{Code|nie rozwiń}} | _6 = Niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}}. | 7 = {{Code|1}} | _7 = Aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika. }} ; Zmienne w kodzie{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{start}}</nowiki>}} | _1 = Przyjmuje wartość {{Tt|1}}. | 2 = {{Code|<nowiki>{{koniec}}</nowiki>}} | _2 = Przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}}. | 3 = {{Code|<nowiki>{{krok}}</nowiki>}} | _3 = Przyjmuje wartość {{Tt|1}}. }} ; Zmienne inne za każdym krokiem iteracji, z których korzystają{{dk}} {{nobold|{{Code|1}}}} i {{nobold|{{Code|przeskok}}}}{{dk}} {{OpisParametrów | 1 = {{Code|<nowiki>{{_}}</nowiki>}} | _1 = Symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji. | 2 = {{Code|<nowiki>{{ciąg}}</nowiki>}} | _2 = Jest to wartość pojedynczego elementu w {{Code|ciąg}}. }} Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|PrzetwarzajIterującCiąg | ciąg = {{{junior}}} | przeskok = 0 | 1 = {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Ramka{{!}}Szablon {{!}}parametry funkcji modułu pudełek{{=}}tak {{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}} {{))}} {{))}} }} </syntaxhighlight> Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} jest kolejny parametr, oddzielonych od pozastałych średniami, z: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}. Powyższy kod, uzyskany w ten sposób wikikod jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{LzLua|frame:preprocess}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej. === {{Śródtytuł|p["PowtarzajWedług"]}}{{Code|p["PowtarzajWedług"]}} === Funkcja wyszukująca elementy według wzoru począwszy od numeru, określonego przez {{Code|start}}, aż do zakończenia danych kolenych sprawdzania od tej liczby, czy taka strona istnieje, numerek jest określony przez pewien wikikod, określony przez {{Code|<nowiki>{{_}}</nowiki>}}, którymusi być podany we wzorze {{Code|wzor}}. Ona w ten sposób dla istniejących stron ustawia pewne łańcuchy, które są łączone znakami {{Code|", "}}, a na końcu samym {{Code|" i "}}. Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PowtarzajWedług"] = function(frame)...end; </syntaxhighlight> ; Funkcja wyszukuje, ile jest stron o danym wzorze, np.dla stron o podstawie strony{{dk}} {{nobold|„{{Ns:Template}}{{dk}}Polecane książki/”}}, a oto przykład{{dk}}{{nobold|{{Parametr|wzór|{{Ns:Template}}{{dk}}Polecane książki/{{((}}_{{))}}}}}}{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. | 3 = Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero...|nagłówek3 =tak }} === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik: * Szablon wypluwający listę stron według wzoru w postaci tekstu: ** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}} * Szablon wypluwający listę stron według wzoru w postaci linków: ** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}} ** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}} == {{Śródtytuł|p["LiczbaPrawychUkośników"]}}{{Code|p["LiczbaPrawychUkośników"]}} == Funkcja liczy, ile jest prawych ukośników w adresie strony podany jako pierwszy parametr ramki. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaPrawychUkośników"] = function(frame)...end; </syntaxhighlight> Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|1}} | _1 = Wielopoziomowy adres z ewentualnie prawymi ukośnikami. | 2 = Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}...|nagłówek2=tak }} === Przykład użycia === * {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} == {{Śródtytuł|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}}{{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} == Funkcja liczy maksymalny numer kolejnej strony liczonej według wzoru {{Code|wzor}}, musi być we wzorze podany element {{Code|<nowiki>{{_}}</nowiki>}}, aby mógł to robić. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end; </syntaxhighlight> Funkcja wyszukuje, ile jest stron o danym wzorze, np. dla stron o podstawie „{{Ns:Template}}:Polecane książki/”, czyli dla stron o ogólnym wzorze: {{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|start}} | _1 = Od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym). | 2 = {{Code|wzór}} | _2 = Wzór według tego, co ma sprawdzając, czy one pasują do niego. }} Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero. === Przykłady użycia === Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik: * {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}} * {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} * {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} == Parametry odpowiednikowych zmiennych == === {{Śródtytuł|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}}{{Code|p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy minimalny numer takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["MinimalnyNumerSpośródOdpowiednikowychZmiennych"]=function(frame)...end; </syntaxhighlight> Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa parametru numerowanego liczbami lub ciągiem pustym. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tego numeru. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/MinimalnyNumerSpośródOdpowiednikowychZmiennych}}. === {{Śródtytuł|p.IleJestTakichOdpowiednikowychZmiennych}}{{Code|p.IleJestTakichOdpowiednikowychZmiennych}} === Zmienna może być napisana w postaci zmiennej nienazwanej lub nazwanej, zmienną {{Code|zmienna}} (to musi być bez numerka) z numerkiem na końcu. Funkcja liczy ile jest takich zmiennych. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IleJestTakichOdpowiednikowychZmiennych=function(frame)...end; </syntaxhighlight> Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|zmienna}} | _1 = Podstawa nazwowa parametru numerowanego. | 2 = {{Code|numerowane}} | _2 = Czy ma wliczać parametry numerowane do tej liczby. }} Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Parametry: {{Code|zmienna}} i {{Code|numerowane}}, to parametry ramki. ==== Przykład przy pomocy szablonu z definicją z tą funkcją ==== * Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/Ramka/IleJestTakichOdpowiednikowychZmiennych}}. == {{Śródtytuł|p["Parametr w tablicy nazw"]}}{{Code|p["Parametr w tablicy nazw"]}} == Funkcja bada, czy jest taki parametr {{Code|pozycja}} w tablicy nazw określonej zmienną {{Code|parametry}}, której elementy są oddzielone średnikami. * Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Parametr w tablicy nazw"]=function(frame)...end; </syntaxhighlight> Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów. ; Parametry funkcji{{dk}} {{OpisParametrów | 1 = {{Code|parametry}} | _1 = Lista parametrów oddzielonych średnikiem. | 2 = {{Code|pozycja}} | _2 = Szukany parametr w tablicy argumentów. | 3 = {{Code|od dużej}} | _3 = Czy parametr: {{Code|pozycja}}, i elementy listy: {{Code|parametry}}, mają być zamieniane od dużej litery. }} Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, a to ostatnie jest to wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty, więc ona nadaje się do instrukcji warunkowych. ==== Przykład wywołania ramki z tą funkcją na stronie opisu szablonu ==== * Popatrz na wywołania tej funkcji w ramce, {{lpg|Lua}} w {{lpr|Scribunto}}, czyli: {{s|Wikibooks/Przykład/Ramka/Parametr w tablicy nazw}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> e4ihj32fe5sc713i5blbi4fs4kpysb7 Wikibooks:Moduły/Skrót 4 63279 555612 554207 2026-09-11T03:20:21Z Persino 2851 555612 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Skrót}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł {{ld2|Skrót}} służy do krótszego operowania szablonami {{s|Kategoria}} i {{s|Kategorie}} przy pomocy funkcji {{m|Ramka|Szablon}} z dodatkowymi parametrami obsługiwanymi przez tę funkcję, które jawnie nie podajemy w funkcjach zawartych w tym module, ale które są podane są za to niejawnie w definicji tych procedur, aby do nich trafiały niektóre zmienne szablonu rodzica, w której została ona wywołana ta ramka, wtedy wywołanie tego szablonu wygląda na krótsze i estetyczne. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local skrot_modul=require("Module:Skrót"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == {{Code|WykazSzablon}} == Funkcja, która uruchamia szablon z dodatkowymi parametrami lub dodaje dodatkowe kategorie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local WykazSzablon=function(frame,szablon,czy_inne_kategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. | 2 = {{Code|szablon}} | _2 = Nazwa szablonu do wywołania. | 3 = {{Code|czy_inne_kategorie}} | _3 = Jeśli {{Code|true}}, i nazwa szablonu jest {{Code|Kategoria}}, to ją zamienia na {{Code|Kategorie}}. }} Parametry ramki tablicy transportu {{Code|frame}}: parametry ramki dziecka i jej rodzica są te same, co parametry ramki funkcji modułu {{ld2|Skrót}}. Funkcja przyjmuje parametr tablicę ramki tablicy transportu, i drugi parametr, który jest nazwą podstawową szablonu, przyjmować może on jedynie wartości: {{Code|Kategoria}} i {{Code|Kategorie}}, trzeci, który może nie być podany lub przyjmować wartość {{Code|nil}}, albo przyjmować wartość {{Code|true}}. Te szablony przyjmują w module {{ld2|Skrót}} na pewno parametry: {{OpisParametrów | 1 = {{Code|parametry podstawowe funkcji modułu pudełek}} | _1 = Funkcja przyjmuje tylko parametry modułu pudełek {{ld2|Pudełko}}. | 2 = {{Code|bez dodatkowych sprawdzeń}} | _2 = funkcja wyłącza sprawdzanie (walidację) błędów w szablonie. }} Gdy drugi parametr tego szablonu jest {{Code|Kategoria}} (przyjmujący jedną kategorię), a trzeci {{Code|true}}, wtedy ten szablon jest zamieniany na {{Code|Kategorie}} (przyjmujący jako argumenty wiele kategorii), tak się dzieje, bo funkcja dodatkowo zwraca kategorie do szablonu, w którym on został wywołany, na stronie o takiej samej pełnej nazwie, co on. Funkcja uruchamia ramkę {{Code|{{m|Ramka|Szablon}}}} (opis tej funkcji jest w: {{sr|#p.Szablon|p=Ramka}}), która dla szablonu, bez trzeciego parametru tej funkcji, {{Code|Kategoria}} wygląda tak, co jest równoważne wywołaniu ramki: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategoria|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...}} </syntaxhighlight> A dla szablonu {{Code|Kategorie}} uruchamianie jego jest: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|_1=...|2=...|_2==...|...|<n>=...|_<n>=...|...}} </syntaxhighlight> * Gdzie {{Code|<n>}} to pewne liczba naturalna nie równa zero. A gdy trzeci parametr jest {{Code|true}}, a drugi {{Code|Kategoria}} lub {{Code|Kategorie}}, wtedy rozwijany jest wikikod równoważny temu, dla tego pierwszego szablonu: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|2=Szablony dodające kategorie|_i=..}} </syntaxhighlight> A dla tego drugiego szablonu: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|2=...|...|<n>=...|..|2=Szablony dodające kategorie}} </syntaxhighlight> Widzimy, jakie skomplikowane wywołania tworzy ta funkcja, a to jest wszystko ukryte pod nią, a my używając modułu {{ld2|Skrót}} możemy tworzyć proste wywołania, które są tłumaczone na te skomplikowane. == Skróty szablonów kategorii == Kateria funkcji do uruchamiania szablonów kategorii: {{Code|{{ls2|Kategoria}}}} i {{Code|{{ls2|Kategorie}}}}, zamieniające proste wywołania kategorii na skomplikowane, co oszczedza rozmiary odpowiednich szablonów. Funkcja jest uruchamiana w ramce modułu {{Code|{{ld2|Skrót}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} - Tablica ramki funkcji tablicy transportu. }} Parametry ramki tablicy transportu {{Code|frame}}: parametry ramki dziecka i jej rodzica są te same, co parametry ramki funkcji modułu {{ld2|Skrót}}. === {{Code|p.Kategoria}} === Funkcja przyjmuje jedną tylko nazwę kategorii i jej nazwę sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania bez funkcji zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategoria(frame) return WykazSzablon(frame,"Kategoria"); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon przyjmuje te same parametry, co szablon {{s|Kategoria}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategoria|<kategoria>|<nazwa sortowania>}} </syntaxhighlight> === {{Code|p.Kategorie}} === Funkcja przyjmuje wiele nazw kategorii i ich nazwy sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania bez funkcji zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategorie(frame) return WykazSzablon(frame,"Kategorie"); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon przyjmuje te same parametry, co szablon {{s|Kategorie}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategorie|1=<kategoria 1>|_1=<nazwa sortowania 1>|2=<kategoria 2>|_2=<nazwa sortowania 2>|...}} </syntaxhighlight> === {{Code|p.Kategoria2}} === Funkcja przyjmuje jedną tylko nazwę kategorii i jej nazwę sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania z funkcją zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategoria2(frame) return WykazSzablon(frame,"Kategoria",true); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon przyjmuje te same parametry, co szablon {{s|Kategoria}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategoria2|<kategoria>|<nazwa sortowania>}} </syntaxhighlight> === {{Code|p.Kategorie2}} === Funkcja przyjmuje wiele nazw kategorii i ich nazwy sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania z funkcją zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategorie2(frame) return WykazSzablon(frame,"Kategorie",true); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon przyjmuje te same parametry, co szablon {{s|Kategorie}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategorie2|1=<kategoria 1>|_1=<nazwa sortowania 1>|2=<kategoria 2>|_2=<nazwa sortowania 2>|...}} </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qr0o9i7nj5wzmxeux1f48htk367ug2f 555613 555612 2026-09-11T03:21:23Z Persino 2851 /* Skróty szablonów kategorii */ 555613 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Skrót}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł {{ld2|Skrót}} służy do krótszego operowania szablonami {{s|Kategoria}} i {{s|Kategorie}} przy pomocy funkcji {{m|Ramka|Szablon}} z dodatkowymi parametrami obsługiwanymi przez tę funkcję, które jawnie nie podajemy w funkcjach zawartych w tym module, ale które są podane są za to niejawnie w definicji tych procedur, aby do nich trafiały niektóre zmienne szablonu rodzica, w której została ona wywołana ta ramka, wtedy wywołanie tego szablonu wygląda na krótsze i estetyczne. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local skrot_modul=require("Module:Skrót"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == {{Code|WykazSzablon}} == Funkcja, która uruchamia szablon z dodatkowymi parametrami lub dodaje dodatkowe kategorie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local WykazSzablon=function(frame,szablon,czy_inne_kategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. | 2 = {{Code|szablon}} | _2 = Nazwa szablonu do wywołania. | 3 = {{Code|czy_inne_kategorie}} | _3 = Jeśli {{Code|true}}, i nazwa szablonu jest {{Code|Kategoria}}, to ją zamienia na {{Code|Kategorie}}. }} Parametry ramki tablicy transportu {{Code|frame}}: parametry ramki dziecka i jej rodzica są te same, co parametry ramki funkcji modułu {{ld2|Skrót}}. Funkcja przyjmuje parametr tablicę ramki tablicy transportu, i drugi parametr, który jest nazwą podstawową szablonu, przyjmować może on jedynie wartości: {{Code|Kategoria}} i {{Code|Kategorie}}, trzeci, który może nie być podany lub przyjmować wartość {{Code|nil}}, albo przyjmować wartość {{Code|true}}. Te szablony przyjmują w module {{ld2|Skrót}} na pewno parametry: {{OpisParametrów | 1 = {{Code|parametry podstawowe funkcji modułu pudełek}} | _1 = Funkcja przyjmuje tylko parametry modułu pudełek {{ld2|Pudełko}}. | 2 = {{Code|bez dodatkowych sprawdzeń}} | _2 = funkcja wyłącza sprawdzanie (walidację) błędów w szablonie. }} Gdy drugi parametr tego szablonu jest {{Code|Kategoria}} (przyjmujący jedną kategorię), a trzeci {{Code|true}}, wtedy ten szablon jest zamieniany na {{Code|Kategorie}} (przyjmujący jako argumenty wiele kategorii), tak się dzieje, bo funkcja dodatkowo zwraca kategorie do szablonu, w którym on został wywołany, na stronie o takiej samej pełnej nazwie, co on. Funkcja uruchamia ramkę {{Code|{{m|Ramka|Szablon}}}} (opis tej funkcji jest w: {{sr|#p.Szablon|p=Ramka}}), która dla szablonu, bez trzeciego parametru tej funkcji, {{Code|Kategoria}} wygląda tak, co jest równoważne wywołaniu ramki: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategoria|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...}} </syntaxhighlight> A dla szablonu {{Code|Kategorie}} uruchamianie jego jest: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|_1=...|2=...|_2==...|...|<n>=...|_<n>=...|...}} </syntaxhighlight> * Gdzie {{Code|<n>}} to pewne liczba naturalna nie równa zero. A gdy trzeci parametr jest {{Code|true}}, a drugi {{Code|Kategoria}} lub {{Code|Kategorie}}, wtedy rozwijany jest wikikod równoważny temu, dla tego pierwszego szablonu: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|2=Szablony dodające kategorie|_i=..}} </syntaxhighlight> A dla tego drugiego szablonu: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|2=...|...|<n>=...|..|2=Szablony dodające kategorie}} </syntaxhighlight> Widzimy, jakie skomplikowane wywołania tworzy ta funkcja, a to jest wszystko ukryte pod nią, a my używając modułu {{ld2|Skrót}} możemy tworzyć proste wywołania, które są tłumaczone na te skomplikowane. == Skróty szablonów kategorii == Kateria funkcji do uruchamiania szablonów kategorii: {{Code|{{ls2|Kategoria}}}} i {{Code|{{ls2|Kategorie}}}}, zamieniające proste wywołania kategorii na skomplikowane, co oszczedza rozmiary odpowiednich szablonów. Funkcja jest uruchamiana w ramce modułu {{Code|{{ld2|Skrót}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. }} Parametry ramki tablicy transportu {{Code|frame}}: parametry ramki dziecka i jej rodzica są te same, co parametry ramki funkcji modułu {{ld2|Skrót}}. === {{Code|p.Kategoria}} === Funkcja przyjmuje jedną tylko nazwę kategorii i jej nazwę sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania bez funkcji zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategoria(frame) return WykazSzablon(frame,"Kategoria"); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon przyjmuje te same parametry, co szablon {{s|Kategoria}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategoria|<kategoria>|<nazwa sortowania>}} </syntaxhighlight> === {{Code|p.Kategorie}} === Funkcja przyjmuje wiele nazw kategorii i ich nazwy sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania bez funkcji zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategorie(frame) return WykazSzablon(frame,"Kategorie"); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon przyjmuje te same parametry, co szablon {{s|Kategorie}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategorie|1=<kategoria 1>|_1=<nazwa sortowania 1>|2=<kategoria 2>|_2=<nazwa sortowania 2>|...}} </syntaxhighlight> === {{Code|p.Kategoria2}} === Funkcja przyjmuje jedną tylko nazwę kategorii i jej nazwę sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania z funkcją zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategoria2(frame) return WykazSzablon(frame,"Kategoria",true); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon przyjmuje te same parametry, co szablon {{s|Kategoria}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategoria2|<kategoria>|<nazwa sortowania>}} </syntaxhighlight> === {{Code|p.Kategorie2}} === Funkcja przyjmuje wiele nazw kategorii i ich nazwy sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania z funkcją zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategorie2(frame) return WykazSzablon(frame,"Kategorie",true); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon przyjmuje te same parametry, co szablon {{s|Kategorie}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategorie2|1=<kategoria 1>|_1=<nazwa sortowania 1>|2=<kategoria 2>|_2=<nazwa sortowania 2>|...}} </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> a2ki2cd0txu0q5g4r84le4j4npne88o 555614 555613 2026-09-11T03:23:27Z Persino 2851 /* Skróty szablonów kategorii */ 555614 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Skrót}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł {{ld2|Skrót}} służy do krótszego operowania szablonami {{s|Kategoria}} i {{s|Kategorie}} przy pomocy funkcji {{m|Ramka|Szablon}} z dodatkowymi parametrami obsługiwanymi przez tę funkcję, które jawnie nie podajemy w funkcjach zawartych w tym module, ale które są podane są za to niejawnie w definicji tych procedur, aby do nich trafiały niektóre zmienne szablonu rodzica, w której została ona wywołana ta ramka, wtedy wywołanie tego szablonu wygląda na krótsze i estetyczne. Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local skrot_modul=require("Module:Skrót"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == {{Code|WykazSzablon}} == Funkcja, która uruchamia szablon z dodatkowymi parametrami lub dodaje dodatkowe kategorie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local WykazSzablon=function(frame,szablon,czy_inne_kategorie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. | 2 = {{Code|szablon}} | _2 = Nazwa szablonu do wywołania. | 3 = {{Code|czy_inne_kategorie}} | _3 = Jeśli {{Code|true}}, i nazwa szablonu jest {{Code|Kategoria}}, to ją zamienia na {{Code|Kategorie}}. }} Parametry ramki tablicy transportu {{Code|frame}}: parametry ramki dziecka i jej rodzica są te same, co parametry ramki funkcji modułu {{ld2|Skrót}}. Funkcja przyjmuje parametr tablicę ramki tablicy transportu, i drugi parametr, który jest nazwą podstawową szablonu, przyjmować może on jedynie wartości: {{Code|Kategoria}} i {{Code|Kategorie}}, trzeci, który może nie być podany lub przyjmować wartość {{Code|nil}}, albo przyjmować wartość {{Code|true}}. Te szablony przyjmują w module {{ld2|Skrót}} na pewno parametry: {{OpisParametrów | 1 = {{Code|parametry podstawowe funkcji modułu pudełek}} | _1 = Funkcja przyjmuje tylko parametry modułu pudełek {{ld2|Pudełko}}. | 2 = {{Code|bez dodatkowych sprawdzeń}} | _2 = funkcja wyłącza sprawdzanie (walidację) błędów w szablonie. }} Gdy drugi parametr tego szablonu jest {{Code|Kategoria}} (przyjmujący jedną kategorię), a trzeci {{Code|true}}, wtedy ten szablon jest zamieniany na {{Code|Kategorie}} (przyjmujący jako argumenty wiele kategorii), tak się dzieje, bo funkcja dodatkowo zwraca kategorie do szablonu, w którym on został wywołany, na stronie o takiej samej pełnej nazwie, co on. Funkcja uruchamia ramkę {{Code|{{m|Ramka|Szablon}}}} (opis tej funkcji jest w: {{sr|#p.Szablon|p=Ramka}}), która dla szablonu, bez trzeciego parametru tej funkcji, {{Code|Kategoria}} wygląda tak, co jest równoważne wywołaniu ramki: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategoria|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...}} </syntaxhighlight> A dla szablonu {{Code|Kategorie}} uruchamianie jego jest: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|_1=...|2=...|_2==...|...|<n>=...|_<n>=...|...}} </syntaxhighlight> * Gdzie {{Code|<n>}} to pewne liczba naturalna nie równa zero. A gdy trzeci parametr jest {{Code|true}}, a drugi {{Code|Kategoria}} lub {{Code|Kategorie}}, wtedy rozwijany jest wikikod równoważny temu, dla tego pierwszego szablonu: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|2=Szablony dodające kategorie|_i=..}} </syntaxhighlight> A dla tego drugiego szablonu: <syntaxhighlight lang="mediawiki"> {{#invoke:Ramka|Szablon|Nazwa=Kategorie|parametry podstawowe funkcji modułu pudełek=tak|bez dodatkowych sprawdzeń=tak|1=...|2=...|...|<n>=...|..|2=Szablony dodające kategorie}} </syntaxhighlight> Widzimy, jakie skomplikowane wywołania tworzy ta funkcja, a to jest wszystko ukryte pod nią, a my używając modułu {{ld2|Skrót}} możemy tworzyć proste wywołania, które są tłumaczone na te skomplikowane. == Skróty szablonów kategorii == Kateria funkcji do uruchamiania szablonów kategorii: {{Code|{{ls2|Kategoria}}}} i {{Code|{{ls2|Kategorie}}}}, zamieniające proste wywołania kategorii na skomplikowane, co oszczedza rozmiary odpowiednich szablonów. Funkcja jest uruchamiana w ramce modułu {{Code|{{ld2|Skrót}}}}. Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. }} Parametry ramki tablicy transportu {{Code|frame}}: parametry ramki dziecka i jej rodzica są te same, co parametry ramki funkcji modułu {{ld2|Skrót}}. === {{Code|p.Kategoria}} === Funkcja przyjmuje jedną tylko nazwę kategorii i jej nazwę sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania bez funkcji zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategoria(frame) return WykazSzablon(frame,"Kategoria"); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} przyjmuje te same parametry, co szablon {{s|Kategoria}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategoria|<kategoria>|<nazwa sortowania>}} </syntaxhighlight> === {{Code|p.Kategorie}} === Funkcja przyjmuje wiele nazw kategorii i ich nazwy sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania bez funkcji zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategorie(frame) return WykazSzablon(frame,"Kategorie"); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} przyjmuje te same parametry, co szablon {{s|Kategorie}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategorie|1=<kategoria 1>|_1=<nazwa sortowania 1>|2=<kategoria 2>|_2=<nazwa sortowania 2>|...}} </syntaxhighlight> === {{Code|p.Kategoria2}} === Funkcja przyjmuje jedną tylko nazwę kategorii i jej nazwę sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania z funkcją zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategoria2(frame) return WykazSzablon(frame,"Kategoria",true); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} przyjmuje te same parametry, co szablon {{s|Kategoria}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategoria2|<kategoria>|<nazwa sortowania>}} </syntaxhighlight> === {{Code|p.Kategorie2}} === Funkcja przyjmuje wiele nazw kategorii i ich nazwy sortowania, a zwraca zestaw gotowych kategorii do uruchomienia. Ta funkcja tworzy skomplikowane wywołania z funkcją zwracania kategorii: {{Code|{{lk2|Szablony dodające kategorie}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Kategorie2(frame) return WykazSzablon(frame,"Kategorie",true); end; </syntaxhighlight> Parametry ramki {{Code|frame}} funkcji tablicy transportu modułu: {{OpisParametrów | 1 = Szablon ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} przyjmuje te same parametry, co szablon {{s|Kategorie}} | nagłówek1=tak }} Przykłady użycia: <syntaxhighlight lang="mediawiki"> {{#invoke:Skrót|Kategorie2|1=<kategoria 1>|_1=<nazwa sortowania 1>|2=<kategoria 2>|_2=<nazwa sortowania 2>|...}} </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 5kq20k5hep6tfc2azas20tnmj0t6zej Wikibooks:Moduły/Sekcja referencyjna 4 63280 555615 554208 2026-09-11T03:30:03Z Persino 2851 /* {{Code|p["Sekcja referencyjna"]}} */ 555615 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówka, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), w zmiennej w jej pierwszym parametrze numerowanym, lub w jej wersji szablonowej. Ta funkcja lub jej odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jej odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a, ale nie na papier. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki '''WWW''' z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach '''PDF'''-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony '''WWW''' (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony}} == Funkcja zwraca nagłówek strony, jeżeli istnieje, lub jego podstronę, a jeżeli ona nie ma żadnej podstrony według tego adresu, to cały ten adres, który nie jest adresem {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametry funkcji: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery}} == Funkcja zamienia w nazwie linku pierwszy znak, który jest od litery, aby był od dużej lub małej litery, w zależności od parametrów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba ostatnie parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza}} == Funkcja zwraca parametry trzy linku wskazane w stopce tego rozdziału przygotowane specjalne dla stron zbiorczych sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jej parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właściwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest w: {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}, która nie zawsze musi modyfikować tej zmiennej. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery|p=Sekcja referencyjna}}}} ustala odpowiednio zmodyfikowaną nazwę, według zmiennych, które powinny być niesprzeczne, chodzi tu o: {{Code|od_malej}} i {{Code|od_duzej}}, w przeciwnym wypadku lub jeżeli one nie są ustawione, wtedy nazwa linku pozostaje niezmieniona. Funkcja zwraca trzy parametry jednocześnie, czyli '''nazwę strony''', jej '''nagłówek''' i '''nazwę linku'''. == {{Code|p.Wolumin}} == Funkcja zwraca paraetry linku do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jej definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jej parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną '''nazwę strony''' ona może być z nagłówkiem, policzonej z parametru {{Code|strona}}, ewentualnie {{Code|podstrona}} i '''nazwę linku''' z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"]}} == Szablon stylowy linków inteligentnych, jest on z kodami na stronie {{s|Link wewnętrzny/opis}}, który się mieści pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jej parametrze, tam są też linkujące do tej samej strony, czyli do kaskadowych szablonu arkusza stylów '''CSS''', które są odnadawania barwy linków, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Funkcja koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez kody, a do tego celu używa {{NS|k=d|l=tak}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> ; Parametry podstawowe{{dk}} : Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w niej, a one są: {{OpisParametrów | 1 = {{Code|1}}, {{Code|s}} lub {{Code|strona}} | _1 = Jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}. | 2 = {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} | _2 = Nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}. | 3 = {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} | _3 = Podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}. | 4 = {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} | _4 = Jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jej adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}. | 5 = {{Code|m}}, {{Code|od małej}} | _5 = Jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}. | 6 = {{Code|d}}, {{Code|od dużej}} | _6 = jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}. | 7 = {{Code|t}}, {{Code|pod-ustęp}} | _7 = na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. | 8 = {{Code|b}}, {{Code|bieżąca}} | _8 = Jeśli zmienna: {{Code|podstrona}}, lub jej koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej. }} ; Parametry dodatkowe{{dk}} {{OpisParametrów | 1 = Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego. | nagłówek1=tak }} ; Parametry sterowania instrukcją warunkową{{dk}} {{OpisParametrów | 1 = {{Code|o}}, {{Code|astandardowo}} | _1 = Funkcja generuje link do artykułu na stronie zbiorczej, wtedy funkcja tak działa na stronie zbiorczej, jak by nie była nią. | 2 = {{Code|c}}, {{Code|nagłówkowo}} | _2 = Funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu, wtedy szablon działa na stronie, jak by był stroną zbiorczą. }} ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: '''pełną nazwa jednostki''' uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli według: {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie te niepodane są liczona na podstawie parametrów aktualnej strony, a jeśli są niepodane, wtedy jest sprawdzane jedynie ich nieistnienie, na podstawie tego wszystkiego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"]|p=Pudełko/Tom II}}, z tej zmiennej jest liczona '''pełna nazwa książki''', używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}} w funkcjach: {{Code|{{sr|#p.Strona_zbiorcza|p=Sekcja referencyjna}}}} i {{Code|{{sr|#p.Wolumin|p=Sekcja referencyjna}}}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, ale tak nie musi być, byle tylko adres książki się zgadzał z tą aktualną, przy nie podaniu parametrów przestrzennych i jednostki, a z nimi adres woluminy może być inny. Ale parametry pudełek też mogą wskazywać na inny podręcznik, czy wielopoziomowy podręcznik w przestrzeniach nieksiążkowych, jak w przestrzeni {{Np|Project|link=tak}}. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według '''Stronicowego Parsera''' na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza|p=Sekcja referencyjna}}}} (a ta przedostatnia jest uruchamiana przez funkcję: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> p229m5oh2xm4xlc51le1fx1ge8fbr2l 555616 555615 2026-09-11T03:32:29Z Persino 2851 555616 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówka, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), w zmiennej w jej pierwszym parametrze numerowanym, lub w jej wersji szablonowej. Ta funkcja lub jej odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jej odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a, ale nie na papier. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki '''WWW''' z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach '''PDF'''-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony '''WWW''' (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony}} == Funkcja zwraca nagłówek strony, jeżeli istnieje, lub jego podstronę, a jeżeli ona nie ma żadnej podstrony według tego adresu, to cały ten adres, który nie jest adresem {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ustep}} | _1 = Nazwa strony ustępu strony, co z niego robimy nazwę linku, | 2 = {{Code|czy_ustep}} | _2 = Jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. }} Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery}} == Funkcja zamienia w nazwie linku pierwszy znak, który jest od litery, aby był od dużej lub małej litery, w zależności od parametrów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|nazwa}} | _1 = Nazwa linku strony. | 2 = {{Code|od malej}} | _2 = Zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę. | 3 = {{Code|od dużej}} |_3 = Zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. }} Te parametry nie mogą się zaprzeczać między sobą, tzn. oba ostatnie parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza}} == Funkcja zwraca parametry trzy linku wskazane w stopce tego rozdziału przygotowane specjalne dla stron zbiorczych sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jej parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właściwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest w: {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}, która nie zawsze musi modyfikować tej zmiennej. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery|p=Sekcja referencyjna}}}} ustala odpowiednio zmodyfikowaną nazwę, według zmiennych, które powinny być niesprzeczne, chodzi tu o: {{Code|od_malej}} i {{Code|od_duzej}}, w przeciwnym wypadku lub jeżeli one nie są ustawione, wtedy nazwa linku pozostaje niezmieniona. Funkcja zwraca trzy parametry jednocześnie, czyli '''nazwę strony''', jej '''nagłówek''' i '''nazwę linku'''. == {{Code|p.Wolumin}} == Funkcja zwraca paraetry linku do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jej definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jej parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną '''nazwę strony''' ona może być z nagłówkiem, policzonej z parametru {{Code|strona}}, ewentualnie {{Code|podstrona}} i '''nazwę linku''' z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"]}} == Szablon stylowy linków inteligentnych, jest on z kodami na stronie {{s|Link wewnętrzny/opis}}, który się mieści pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jej parametrze, tam są też linkujące do tej samej strony, czyli do kaskadowych szablonu arkusza stylów '''CSS''', które są odnadawania barwy linków, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Funkcja koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez kody, a do tego celu używa {{NS|k=d|l=tak}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> ; Parametry podstawowe{{dk}} : Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w niej, a one są: {{OpisParametrów | 1 = {{Code|1}}, {{Code|s}} lub {{Code|strona}} | _1 = Jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}. | 2 = {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} | _2 = Nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}. | 3 = {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} | _3 = Podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}. | 4 = {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} | _4 = Jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jej adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}. | 5 = {{Code|m}}, {{Code|od małej}} | _5 = Jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}. | 6 = {{Code|d}}, {{Code|od dużej}} | _6 = jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}. | 7 = {{Code|t}}, {{Code|pod-ustęp}} | _7 = na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. | 8 = {{Code|b}}, {{Code|bieżąca}} | _8 = Jeśli zmienna: {{Code|podstrona}}, lub jej koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej. }} ; Parametry dodatkowe{{dk}} {{OpisParametrów | 1 = Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego. | nagłówek1=tak }} ; Parametry sterowania instrukcją warunkową{{dk}} {{OpisParametrów | 1 = {{Code|o}}, {{Code|astandardowo}} | _1 = Funkcja generuje link do artykułu na stronie zbiorczej, wtedy funkcja tak działa na stronie zbiorczej, jak by nie była nią. | 2 = {{Code|c}}, {{Code|nagłówkowo}} | _2 = Funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu, wtedy szablon działa na stronie, jak by był stroną zbiorczą. }} ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: '''pełną nazwa jednostki''' uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli według: {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie te niepodane są liczona na podstawie parametrów aktualnej strony, a jeśli są niepodane, wtedy jest sprawdzane jedynie ich nieistnienie, na podstawie tego wszystkiego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"]|p=Pudełko/Tom II}}, z tej zmiennej jest liczona '''pełna nazwa książki''', używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}} w funkcjach: {{Code|{{sr|#p.Strona_zbiorcza|p=Sekcja referencyjna}}}} i {{Code|{{sr|#p.Wolumin|p=Sekcja referencyjna}}}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, ale tak nie musi być, byle tylko adres książki się zgadzał z tą aktualną, przy nie podaniu parametrów przestrzennych i jednostki, a z nimi adres woluminy może być inny. Ale parametry pudełek też mogą wskazywać na inny podręcznik, czy wielopoziomowy podręcznik w przestrzeniach nieksiążkowych, jak w przestrzeni {{Np|Project|link=tak}}. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według '''Stronicowego Parsera''' na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza|p=Sekcja referencyjna}}}} (a ta przedostatnia jest uruchamiana przez funkcję: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ivk2fa9d6un0c98jqtaungzdzhwlygm 555617 555616 2026-09-11T03:33:54Z Persino 2851 /* {{Code|p.Strona_zbiorcza}} */ 555617 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówka, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), w zmiennej w jej pierwszym parametrze numerowanym, lub w jej wersji szablonowej. Ta funkcja lub jej odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jej odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a, ale nie na papier. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki '''WWW''' z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach '''PDF'''-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony '''WWW''' (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony}} == Funkcja zwraca nagłówek strony, jeżeli istnieje, lub jego podstronę, a jeżeli ona nie ma żadnej podstrony według tego adresu, to cały ten adres, który nie jest adresem {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ustep}} | _1 = Nazwa strony ustępu strony, co z niego robimy nazwę linku, | 2 = {{Code|czy_ustep}} | _2 = Jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. }} Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery}} == Funkcja zamienia w nazwie linku pierwszy znak, który jest od litery, aby był od dużej lub małej litery, w zależności od parametrów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|nazwa}} | _1 = Nazwa linku strony. | 2 = {{Code|od malej}} | _2 = Zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę. | 3 = {{Code|od dużej}} |_3 = Zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. }} Te parametry nie mogą się zaprzeczać między sobą, tzn. oba ostatnie parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza}} == Funkcja zwraca parametry trzy linku wskazane w stopce tego rozdziału przygotowane specjalne dla stron zbiorczych sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jej parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy nagłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właściwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest w: {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}, która nie zawsze musi modyfikować tej zmiennej. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery|p=Sekcja referencyjna}}}} ustala odpowiednio zmodyfikowaną nazwę, według zmiennych, które powinny być niesprzeczne, chodzi tu o: {{Code|od_malej}} i {{Code|od_duzej}}, w przeciwnym wypadku lub jeżeli one nie są ustawione, wtedy nazwa linku pozostaje niezmieniona. Funkcja zwraca trzy parametry jednocześnie, czyli '''nazwę strony''', jej '''nagłówek''' i '''nazwę linku'''. == {{Code|p.Wolumin}} == Funkcja zwraca paraetry linku do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jej definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jej parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną '''nazwę strony''' ona może być z nagłówkiem, policzonej z parametru {{Code|strona}}, ewentualnie {{Code|podstrona}} i '''nazwę linku''' z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"]}} == Szablon stylowy linków inteligentnych, jest on z kodami na stronie {{s|Link wewnętrzny/opis}}, który się mieści pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jej parametrze, tam są też linkujące do tej samej strony, czyli do kaskadowych szablonu arkusza stylów '''CSS''', które są odnadawania barwy linków, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Funkcja koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez kody, a do tego celu używa {{NS|k=d|l=tak}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> ; Parametry podstawowe{{dk}} : Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w niej, a one są: {{OpisParametrów | 1 = {{Code|1}}, {{Code|s}} lub {{Code|strona}} | _1 = Jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}. | 2 = {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} | _2 = Nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}. | 3 = {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} | _3 = Podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}. | 4 = {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} | _4 = Jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jej adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}. | 5 = {{Code|m}}, {{Code|od małej}} | _5 = Jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}. | 6 = {{Code|d}}, {{Code|od dużej}} | _6 = jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}. | 7 = {{Code|t}}, {{Code|pod-ustęp}} | _7 = na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. | 8 = {{Code|b}}, {{Code|bieżąca}} | _8 = Jeśli zmienna: {{Code|podstrona}}, lub jej koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej. }} ; Parametry dodatkowe{{dk}} {{OpisParametrów | 1 = Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego. | nagłówek1=tak }} ; Parametry sterowania instrukcją warunkową{{dk}} {{OpisParametrów | 1 = {{Code|o}}, {{Code|astandardowo}} | _1 = Funkcja generuje link do artykułu na stronie zbiorczej, wtedy funkcja tak działa na stronie zbiorczej, jak by nie była nią. | 2 = {{Code|c}}, {{Code|nagłówkowo}} | _2 = Funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu, wtedy szablon działa na stronie, jak by był stroną zbiorczą. }} ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: '''pełną nazwa jednostki''' uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli według: {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie te niepodane są liczona na podstawie parametrów aktualnej strony, a jeśli są niepodane, wtedy jest sprawdzane jedynie ich nieistnienie, na podstawie tego wszystkiego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"]|p=Pudełko/Tom II}}, z tej zmiennej jest liczona '''pełna nazwa książki''', używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}} w funkcjach: {{Code|{{sr|#p.Strona_zbiorcza|p=Sekcja referencyjna}}}} i {{Code|{{sr|#p.Wolumin|p=Sekcja referencyjna}}}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, ale tak nie musi być, byle tylko adres książki się zgadzał z tą aktualną, przy nie podaniu parametrów przestrzennych i jednostki, a z nimi adres woluminy może być inny. Ale parametry pudełek też mogą wskazywać na inny podręcznik, czy wielopoziomowy podręcznik w przestrzeniach nieksiążkowych, jak w przestrzeni {{Np|Project|link=tak}}. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według '''Stronicowego Parsera''' na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza|p=Sekcja referencyjna}}}} (a ta przedostatnia jest uruchamiana przez funkcję: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> r2m2gb6bi0y816ddj3dufb2ux6vubes 555618 555617 2026-09-11T03:35:38Z Persino 2851 /* {{Code|p["Sekcja referencyjna"]}} */ 555618 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówka, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), w zmiennej w jej pierwszym parametrze numerowanym, lub w jej wersji szablonowej. Ta funkcja lub jej odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jej odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a, ale nie na papier. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki '''WWW''' z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach '''PDF'''-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony '''WWW''' (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony}} == Funkcja zwraca nagłówek strony, jeżeli istnieje, lub jego podstronę, a jeżeli ona nie ma żadnej podstrony według tego adresu, to cały ten adres, który nie jest adresem {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ustep}} | _1 = Nazwa strony ustępu strony, co z niego robimy nazwę linku, | 2 = {{Code|czy_ustep}} | _2 = Jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. }} Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery}} == Funkcja zamienia w nazwie linku pierwszy znak, który jest od litery, aby był od dużej lub małej litery, w zależności od parametrów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|nazwa}} | _1 = Nazwa linku strony. | 2 = {{Code|od malej}} | _2 = Zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę. | 3 = {{Code|od dużej}} |_3 = Zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. }} Te parametry nie mogą się zaprzeczać między sobą, tzn. oba ostatnie parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza}} == Funkcja zwraca parametry trzy linku wskazane w stopce tego rozdziału przygotowane specjalne dla stron zbiorczych sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jej parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy nagłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właściwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest w: {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}, która nie zawsze musi modyfikować tej zmiennej. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery|p=Sekcja referencyjna}}}} ustala odpowiednio zmodyfikowaną nazwę, według zmiennych, które powinny być niesprzeczne, chodzi tu o: {{Code|od_malej}} i {{Code|od_duzej}}, w przeciwnym wypadku lub jeżeli one nie są ustawione, wtedy nazwa linku pozostaje niezmieniona. Funkcja zwraca trzy parametry jednocześnie, czyli '''nazwę strony''', jej '''nagłówek''' i '''nazwę linku'''. == {{Code|p.Wolumin}} == Funkcja zwraca paraetry linku do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jej definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jej parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną '''nazwę strony''' ona może być z nagłówkiem, policzonej z parametru {{Code|strona}}, ewentualnie {{Code|podstrona}} i '''nazwę linku''' z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"]}} == Szablon stylowy linków inteligentnych, jest on z kodami na stronie {{s|Link wewnętrzny/opis}}, który się mieści pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jej parametrze, tam są też linkujące do tej samej strony, czyli do kaskadowych szablonu arkusza stylów '''CSS''', które są odnadawania barwy linków, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Funkcja koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez kody, a do tego celu używa {{NS|k=d|l=tak}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> ; Parametry podstawowe{{dk}} : Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w niej, a one są: {{OpisParametrów | 1 = {{Code|1}}, {{Code|s}} lub {{Code|strona}} | _1 = Jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}. | 2 = {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} | _2 = Nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}. | 3 = {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} | _3 = Podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}. | 4 = {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} | _4 = Jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jej adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}. | 5 = {{Code|m}}, {{Code|od małej}} | _5 = Jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}. | 6 = {{Code|d}}, {{Code|od dużej}} | _6 = jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}. | 7 = {{Code|t}}, {{Code|pod-ustęp}} | _7 = na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. | 8 = {{Code|b}}, {{Code|bieżąca}} | _8 = Jeśli zmienna: {{Code|podstrona}}, lub jej koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej. }} ; Parametry dodatkowe{{dk}} {{OpisParametrów | 1 = Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego. | nagłówek1=tak }} ; Parametry sterowania instrukcją warunkową{{dk}} {{OpisParametrów | 1 = {{Code|o}}, {{Code|astandardowo}} | _1 = Funkcja generuje link do artykułu na stronie zbiorczej, wtedy funkcja tak działa na stronie zbiorczej, jak by nie była nią. | 2 = {{Code|c}}, {{Code|nagłówkowo}} | _2 = Funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu, wtedy szablon działa na stronie, jak by był stroną zbiorczą. }} ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}} {{Patrz|pelnanazwajednostki}}, oznaczająca: '''pełną nazwa jednostki''' uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli według: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie te niepodane są liczona na podstawie parametrów aktualnej strony, a jeśli są niepodane, wtedy jest sprawdzane jedynie ich nieistnienie, na podstawie tego wszystkiego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"]|p=Pudełko/Tom II}}, z tej zmiennej jest liczona '''pełna nazwa książki''', używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}} w funkcjach: {{Code|{{sr|#p.Strona_zbiorcza|p=Sekcja referencyjna}}}} i {{Code|{{sr|#p.Wolumin|p=Sekcja referencyjna}}}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, ale tak nie musi być, byle tylko adres książki się zgadzał z tą aktualną, przy nie podaniu parametrów przestrzennych i jednostki, a z nimi adres woluminy może być inny. Ale parametry pudełek też mogą wskazywać na inny podręcznik, czy wielopoziomowy podręcznik w przestrzeniach nieksiążkowych, jak w przestrzeni {{Np|Project|link=tak}}. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według '''Stronicowego Parsera''' na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza|p=Sekcja referencyjna}}}} (a ta przedostatnia jest uruchamiana przez funkcję: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fcmylekfdalm1rnham2a98goiupw0s2 555619 555618 2026-09-11T03:45:07Z Persino 2851 555619 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówka, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), w zmiennej w jej pierwszym parametrze numerowanym, lub w jej wersji szablonowej. Ta funkcja lub jej odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jej odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a, ale nie na papier. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki '''WWW''' z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach '''PDF'''-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony '''WWW''' (pozostałe generatory po prostu nie generują linków w ogóle). == {{Śródtytuł|p.Indentyfikator_lub_podstrona_wikiadresu_strony}}{{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony}} == Funkcja zwraca nagłówek strony, jeżeli istnieje, lub jego podstronę, a jeżeli ona nie ma żadnej podstrony według tego adresu, to cały ten adres, który nie jest adresem {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|ustep}} | _1 = Nazwa strony ustępu strony, co z niego robimy nazwę linku, | 2 = {{Code|czy_ustep}} | _2 = Jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. }} Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Śródtytuł|p.Nazwa_od_niewielkiej_lub_wielkiej_litery}}{{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery}} == Funkcja zamienia w nazwie linku pierwszy znak, który jest od litery, aby był od dużej lub małej litery, w zależności od parametrów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|nazwa}} | _1 = Nazwa linku strony. | 2 = {{Code|od malej}} | _2 = Zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę. | 3 = {{Code|od dużej}} |_3 = Zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. }} Te parametry nie mogą się zaprzeczać między sobą, tzn. oba ostatnie parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Śródtytuł|p.Strona_zbiorcza}}{{Code|p.Strona_zbiorcza}} == Funkcja zwraca parametry trzy linku wskazane w stopce tego rozdziału przygotowane specjalne dla stron zbiorczych sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jej parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy nagłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}} {{LinkPatrz|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właściwego nagłówka. Parametr nazwy linku jest w zmiennej: {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest w: {{LinkŚródtytuł|p.Indentyfikator_lub_podstrona_wikiadresu_strony}}, która nie zawsze musi modyfikować tej zmiennej. Funkcja: {{LinkŚródtytuł|p.Nazwa_od_niewielkiej_lub_wielkiej_litery}}, ustala odpowiednio zmodyfikowaną nazwę, według zmiennych, które powinny być niesprzeczne, chodzi tu o: {{Code|od_malej}} i {{Code|od_duzej}}, w przeciwnym wypadku lub jeżeli one nie są ustawione, wtedy nazwa linku pozostaje niezmieniona. Funkcja zwraca trzy parametry jednocześnie, czyli '''nazwę strony''', jej '''nagłówek''' i '''nazwę linku'''. == {{Śródtytuł|p.Wolumin}}{{Code|p.Wolumin}} == Funkcja zwraca paraetry linku do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jej definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji: {{LinkŚródtytuł|p["Sekcja referencyjna"]}}, przy których znajduje się ich opis, podanych przy jej parametrach. Jeżeli parametr: {{Code|strona}}, nie istnieje, to ona jest tworzona na podstawie: {{Code|pelnanazwajednostki}} {{LinkPatrz|pelnanazwajednostki}}, nie używajac parametru: {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość: {{Code|strona}}, jest tworzona ze starego: {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną '''nazwę strony''' ona może być z nagłówkiem, policzonej z parametru: {{Code|strona}}, ewentualnie: {{Code|podstrona}}, i '''nazwę linku''' z: {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję: {{LinkŚródtytuł|p.Indentyfikator_lub_podstrona_wikiadresu_strony}}. == {{Śródtytuł|p["Sekcja referencyjna"]}}{{Code|p["Sekcja referencyjna"]}} == Szablon stylowy linków inteligentnych, jest on z kodami na stronie {{s|Link wewnętrzny/opis}}, który się mieści pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jej parametrze, tam są też linkujące do tej samej strony, czyli do kaskadowych szablonu arkusza stylów '''CSS''', które są odnadawania barwy linków, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Funkcja koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez kody, a do tego celu używa {{NS|k=d|l=tak}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> ; Parametry podstawowe{{dk}} : Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w niej, a one są: {{OpisParametrów | 1 = {{Code|1}}, {{Code|s}} lub {{Code|strona}} | _1 = Jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}. | 2 = {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} | _2 = Nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}. | 3 = {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} | _3 = Podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}. | 4 = {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} | _4 = Jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jej adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}. | 5 = {{Code|m}}, {{Code|od małej}} | _5 = Jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}. | 6 = {{Code|d}}, {{Code|od dużej}} | _6 = jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}. | 7 = {{Code|t}}, {{Code|pod-ustęp}} | _7 = na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. | 8 = {{Code|b}}, {{Code|bieżąca}} | _8 = Jeśli zmienna: {{Code|podstrona}}, lub jej koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej. }} ; Parametry dodatkowe{{dk}} {{OpisParametrów | 1 = Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego. | nagłówek1=tak }} ; Parametry sterowania instrukcją warunkową{{dk}} {{OpisParametrów | 1 = {{Code|o}}, {{Code|astandardowo}} | _1 = Funkcja generuje link do artykułu na stronie zbiorczej, wtedy funkcja tak działa na stronie zbiorczej, jak by nie była nią. | 2 = {{Code|c}}, {{Code|nagłówkowo}} | _2 = Funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu, wtedy szablon działa na stronie, jak by był stroną zbiorczą. }} ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}} {{Patrz|pelnanazwajednostki}}, oznaczająca: '''pełną nazwa jednostki''' uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli według: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie te niepodane są liczona na podstawie parametrów aktualnej strony, a jeśli są niepodane, wtedy jest sprawdzane jedynie ich nieistnienie, na podstawie tego wszystkiego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"]|p=Pudełko/Tom II}}, z tej zmiennej jest liczona '''pełna nazwa książki''', używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]|p=Nazwy/Tom IV}} w funkcjach: {{LinkŚródtytuł|p.Strona_zbiorcza}} i {{LinkŚródtytuł|p.Wolumin}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, ale tak nie musi być, byle tylko adres książki się zgadzał z tą aktualną, przy nie podaniu parametrów przestrzennych i jednostki, a z nimi adres woluminy może być inny. Ale parametry pudełek też mogą wskazywać na inny podręcznik, czy wielopoziomowy podręcznik w przestrzeniach nieksiążkowych, jak w przestrzeni {{Np|Project|link=tak}}. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja: {{LinkŚródtytuł|p.Wolumin}}, a na jakikolwiek stronie zbiorczej według '''{{ld|StronicowyParser|Stronicowego Parsera}}''' na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.Strona_zbiorcza}}, (a ta przedostatnia jest uruchamiana przez funkcję: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6yn7fvach8mplpp0266t6v41jzmuit5 Wikibooks:Moduły/Strony 4 63361 555611 543656 2026-09-11T03:03:38Z Persino 2851 555611 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Strony}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local strony_modul=require("Module:Strony"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje z {{Code|p.}} należą do tablicy transportu zwracanej przez moduł: {{Code|{{ld2|Strony}}}}, a bez niego to są funkcje lokalne w tym module oznaczone słowem {{Code|local}}. Funkcje w tym module są wykorzystywane do sprawdzania, czy dany tekst spełnia jakieś warunki, funkcje bez {{Code|p.}} są wykorzystywane tylko w tym module, a z tym są bazą do implementacji modułu: {{Code|{{ld2|Sprawdź}}}}, w funkcji: {{Code|{{m|Sprawdź|Parametry}}}}, które służą do sprawdzania parametrów szablonów za pomocą funkcji w module: {{Code|{{ld2|Strony}}}}, ta funkcja też korzysta z innych funkcji z innych modułów w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. == Właściwe lokalne funkcje sprawdzające == === {{Code|checkUri}} === Funkcja jest formułowana do użycia tylko w module, w której został zdefiniowany, ze względu na lokalność tej funkcji. Funkcja sprawdza, czy podany: {{Code|uri}}, jest adresem URL. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function checkUri(uri)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|uri}} | _1 = Sprawdzany tekst, który ma spełniać pewne kryteria. }} Funkcja obsługuje protokoły dla adresów URL podane w liście dla stronie {{ld2|Strony/dane}}: <syntaxhighlight lang="lua"> p.obslugiwaneUriSchematy={ -- najczęściej używane 'http://', 'https://', '//', -- możliwe 'bitcoin:', 'ftp://', 'ftps://', 'geo:', 'git://', 'gopher://', 'irc://', 'ircs://', 'magnet:', 'mailto:', 'mms://', 'news:', 'nntp://', 'redis://', 'sftp://', 'sip:', 'sips:', 'sms:', 'ssh://', 'svn://', 'tel:', 'telnet://', 'urn:', 'worldwind://', 'xmpp:', }; </syntaxhighlight> Funkcja zwraca wartość logiczną {{Code|true}}, gdy podany adres jest adresem URL, według obsługiwanych protokołów, a jeśli nie, to ona zwróci wartość {{Code|false}}. Przykłady użycia: <syntaxhighlight lang="lua"> local uri="https://em.wikibooks.org/wiki/Mechanik_teoretyczna"; local czy_tak=checkUri(uri); </syntaxhighlight> Funkcja w przykładzie zrzuci wartość logiczną {{Code|czy_tak {{=}} true}}, czyli prawdę. === {{Code|checkImageName}} === Funkcja jest formułowana do użycia tylko w module, w której został zdefiniowany, ze względu na lokalność tej funkcji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function checkImageName(name_nieprzetworzone,przestrzen)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|name_nieprzetworzone}} | _1 = Nazwa pliku z przestrzenia nazw lub nie, w zależności od drugiego parametru. | 2 = {{Code|przestrzen}} | _2 = Czy w nazwie pliku mają być uwzględniane przestrzenie nazw. }} Funkcja sprawdza, czy podany adres wewnętrzny jest adresem pliku. Możliwe są dwa warianty, wariant: {{Code|przestrzen {{=}} false}}, gdzie nie może być podana przestrzeń nazw plikowa, tzn., która jest podana w zmiennej na stronie: {{Code|{{ld2|Strony/dane}}}}, którego fragment: <syntaxhighlight lang="lua"> prefix = { plik = true, image = true, grafika = true, file = true, media = true, }, </syntaxhighlight> lub może, ale nie musi być podana z dodatkowymi przestrzeniami, nawet nieplikowymi, w takim przypadku ta funkcji zwróci wynik: {{Code|false}}, a w przeciwnym wypadku, funkcja może zrzucić wartość {{Code|true}}, ale nie musi. Możliwe są rozszerzenia plików, dla których ta funkcja może dać wynik {{Code|true}}, tzn.: <syntaxhighlight lang="lua"> extension = { flac = true, jpg = true, jpeg = true, jpe = true, mid = true, midi =true, mp3 = true, mpg = true, mpeg = true, oga = true, ogg = true, ogv = true, opus = true, png = true, svg = true, tif = true, tiff = true, gif = true, xcf = true, pdf = true, djvu = true, wav = true, webm = true, webp = true, }, </syntaxhighlight> Ale plik też nie musi mieć rozszerzenia, ale może, pliki bez nich bez przestrzeni plikowych: <syntaxhighlight lang="lua"> name = { ["@"]=true, }, </syntaxhighlight> Funkcja zwróci wartość {{Code|true}}, gdy strona jest prawidłowych adresem wewnętrznym strony przestrzeni plikowej, gdy drugi argument jest {{Code|false}}, strona nie może być podana z przestrzeniami plikowymi, ale z innymi już tak, co wtedy jest to traktowane jako część nazwy w przestrzeni nazw: {{Np|File|link=tak}}. Gdy drugi parametr ma wartość prawdziwą, wtedy strona może być podana z przestrzenią lub nie, byle tylko był to, pełny lub nie, adres strony pliku. Przykłady użycia: ; Pierwszy <syntaxhighlight lang="lua"> local plik="Grafika:Strona_pliku.jPG"; local czy_tak=checkImageName(plik,true); </syntaxhighlight> Strona jest podana, z prawidłową przestrzenią plikową, z prawidłowym rozszerzeniem pliku, więc wtedy funkcja zrzuci wartość {{Code|czy_tak}} równą {{Code|true}}. ; Drugi <syntaxhighlight lang="lua"> local plik="Strona_pliku.jPG"; local czy_tak=checkImageName(plik,false); </syntaxhighlight> Strona jest podana bez przestrzeni plikowej, ale z prawidłowym rozszerzeniem pliku, więc wtedy funkcja zrzuci wartość {{Code|czy_tak}} równą {{Code|true}}. === {{Code|findPlainHttp}} === Funkcja jest formułowana do użycia tylko w module, w której został zdefiniowany, ze względu na lokalność tej funkcji. Funkcja sprawdza, czy adres: {{Strong|http://}}, czy {{Strong|https://}}, w tekście, czy istnieje, sprawdza, czy ona nie jest częścią linku zewnętrznego, a jeśli nie, to funkcja zwraca wynik {równy, ale nie {{Code|nil}}, w przeciwnym wypadku {{Code|nil}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function findPlainHttp(text)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|text}} | _1 = Sprawdzany tekst, który ma spełniać pewne kryteria. }} Przykłady użycia: ; Pierwszy <syntaxhighlight lang="lua"> local tekst="Oto jest tekst z linkiem https://pl.wikibooks.org ilustrujący zasada działania Wikibooks"; local czy_tak=findPlainHttp(tekst); </syntaxhighlight> Funkcja zrzuci wynik pozytywny nienilowy. ; Drugi <syntaxhighlight lang="lua"> local tekst="Oto jest tekst z linkiem [https://pl.wikibooks.org pl.wikibooks.org] ilustrujący zasada działania Wikibooks"; local czy_tak=findPlainHttp(tekst); </syntaxhighlight> Funkcja zrzuci wynik {{Code|nil}}. === {{Code|findAnyHttp}} === Funkcja jest formułowana do użycia tylko w module, w której został zdefiniowany, ze względu na lokalność tej funkcji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function findAnyHttp(text)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|text}} | _1 = Sprawdzany tekst, który ma spełniać pewne kryteria. }} Funkcja sprawdza, czy adres: {{Strong|http://}}, czy {{Strong|https://}}, jest w tekście, wtedy funkcji zwróci wynik nienilowy, a w przeciwym wypadku {{Code|nil}}. Przykłady użycia: ; Pierwszy <syntaxhighlight lang="lua"> local tekst="Oto jest tekst z linkiem https://pl.wikibooks.org ilustrujący zasada działania Wikibooks"; local czy_tak=findAnyHttp(tekst); </syntaxhighlight> Funkcja zrzuci wynik pozytywny nienilowy. ; Drugi <syntaxhighlight lang="lua"> local tekst="Oto jest tekst z linkiem [https://pl.wikibooks.org pl.wikibooks.org] ilustrujący zasada działania Wikibooks"; local czy_tak=findAnyHttp(tekst); </syntaxhighlight> Funkcja zrzuci wynik pozytywny nienilowy. === {{Code|findFile}} === Funkcja jest formułowana do użycia tylko w module, w której został zdefiniowany, ze względu na lokalność tej funkcji. Funkcja sprawdza, czy w tekście jest wywołanie plikowe. Funkcja chowaj wyjątek z obrazka generowanego przez: {{Code|{{s|Link-interwiki|z przestrzenią=tak}}}}. Definicji skrótowa funkcji: <syntaxhighlight lang="lua"> local function findFile(text)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|text}} | _1 = Sprawdzany tekst, który ma spełniać pewne kryteria. }} Funkcja rozpoznaje rozszerzenia plików: {{Strong|Plik}}, {{Strong|File}}, {{Strong|Grafika}} i {{Strong|Image}}. Przykłady użycia: <syntaxhighlight lang="lua"> local tekst="Strona z plikiem: [[Plik:Strona_plikowa.jpg|thumb|right|250px|link=w:Strona_na_wikipedii|Oto jest opis]], a oto jest dalszy tekst."; local czy_tak=findFile(tekst); </syntaxhighlight> Funkcja zwróci wartość nienilową, czyli pozytywną. === {{Code|checkSizeFile}} === Funkcja sprawdza rozmiary,który jest łańcuchem znaków, czy zgadza się z określonym formatem według ustawień w module: {{Code|{{ld2|Strony/dane}}}}, według dwóch dostępnych trybów. ; Tryb fałszywy, gdy {{Nobold|{{Code|tryb {{=}} false}}}} {{Patrz|tryb {{=}} false}}{{Dk}} <syntaxhighlight lang="lua"> p.tablica_parsowania_rozmiaru_pliku={ "^%s*%d+px%s*$", "^%s*x%d+px%s*$", "^%s*%d+x%d+px%s*$", }; </syntaxhighlight> ; Tryb prawdziwy, gdy {{Nobold|{{Code|tryb {{=}} true}}}} {{Patrz|tryb {{=}} true}}{{Dk}} <syntaxhighlight lang="lua"> p.tablica_parsowania_rozmiaru_pliku_2={ "^%d+%.?%d*(%a*)$", "^%d+%.?%d*(%%)$", "^x%d+%.?%d*(%a*)$", "^x%d+%.?%d*(%%)$", "^%d+%.?%d*(%a*)x%d+%.?%d*(%a*)$", "^%d+%.?%d*(%%)x%d+%.?%d*(%a*)$", "^%d+%.?%d*(%a*)x%d+%.?%d*(%%)$", "^%d+%.?%d*(%%)x%d+%.?%d*(%%)$", }; </syntaxhighlight> Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function checkSizeFile(size,tryb)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|size}} {{Patrz|size}} | _1 = Łańcuch znaków,który przedstawia tylko szerokość lub tylko wysokość albo jednocześniew jednym szerokość i wysokość, | 2 = {{Code|tryb}} {{Patrz|tryb}} | _2 = Dostępne tryby: {{Code|false/true}}, pierwszy tryb, to dla {{LinkPatrz|tryb {{=}} false}}, a drugi {{LinkPatrz|tryb {{=}} true}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local rozmiar="12emx150px"; local tryb=true; local czy_tak=checkSizeFile(rozmiar,tryb); </syntaxhighlight> Funkcja zwróci wartość nienilową, czyli pozytywną. == Funkcje obuduwujące właściwe funkcje sprawdzające == === {{Code|p.SprawdzanieURL}} === Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SprawdzanieURL(frame)...end; </syntaxhighlight> Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{Code|{{sr|#checkUri|p=Strony}}}}. Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji. Parametry ramki funkcji tablicy transportu: {{OpisParametrów | 1 = {{Code|url}} lub {{Code|1}} | _1 = Adres URL strony internetowej. }} Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki. Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica. Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|url}}, czy {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local uri="https://em.wikibooks.org/wiki/Mechanik_teoretyczna"; local strony_modul=require("Module:Strony"); local czy_tak=strony_modul.SprawdzanieURL(uri); </syntaxhighlight> Funkcja w przykładzie zrzuci wartość logiczną {{Code|czy_tak {{=}} true}}, czyli prawdę. === {{Code|p.SprawdzanieNazwyPlikowe}} === Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SprawdzanieNazwyPlikowe(frame)...end; </syntaxhighlight> Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{Code|{{sr|#checkImageName|p=Strony}}}}. Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji. Parametry ramki funkcji tablicy transportu: {{OpisParametrów | 1 = {{Code|nazwa}} lub {{Code|1}} | _1 = Nazwa strony, ewentualnie z rozszerzeniem strony. | 2 = {{Code|przestrzeń}} lub {{Code|2}} | _2 = Czy ma uwzględniać przestrzeń nazw strony. }} Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki. Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica. Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|nazwa}}, czy {{Code|1}}. Przykłady użycia: ; Pierwszy <syntaxhighlight lang="lua"> local plik="Grafika:Strona_pliku.jPG"; local strony_modul=require("Module:Strony"); local czy_tak=strony_modul.SprawdzanieNazwyPlikowe(plik); </syntaxhighlight> Funkcja zrzuci wynik pozytywny nienilowy. ; Drugi <syntaxhighlight lang="lua"> local plik="Strona_pliku.jPG"; local strony_modul=require("Module:Strony"); local czy_tak=strony_modul.SprawdzanieNazwyPlikowe(plik); </syntaxhighlight> Funkcja zrzuci wynik nienilowy. === {{Code|p.ZnajdowanieNormalnychStronHttp}} === Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnajdowanieNormalnychStronHttp(frame)...end; </syntaxhighlight> Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{Code|{{sr|#findPlainHttp|p=Strony}}}}. Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji. Parametry ramki funkcji tablicy transportu: {{OpisParametrów | 1 = {{Code|tekst}} lub {{Code|1}} | _1 = Jest to tekst do sprawdzenia, czy strony {{Strong|http://}} i {{Strong|https://}}, są nie w linku zewnętrznym. }} Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki. Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica. Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|tekst}}, czy {{Code|1}}. Przykłady użycia: ; Pierwszy <syntaxhighlight lang="lua"> local tekst="Oto jest tekst z linkiem https://pl.wikibooks.org ilustrujący zasada działania Wikibooks"; local strony_modul=require("Module:Strony"); local czy_tak=strony_modul.ZnajdowanieNormalnychStronHttp(tekst); </syntaxhighlight> Funkcja zrzuci wynik pozytywny nienilowy. ; Drugi <syntaxhighlight lang="lua"> local tekst="Oto jest tekst z linkiem [https://pl.wikibooks.org pl.wikibooks.org] ilustrujący zasada działania Wikibooks"; local strony_modul=require("Module:Strony"); local czy_tak=strony_modul.ZnajdowanieNormalnychStronHttp(tekst); </syntaxhighlight> Funkcja zrzuci wynik {{Code|nil}}. === {{Code|p.ZnajdowanieJakikolwiekStronHttp}} === Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnajdowanieJakikolwiekStronHttp(frame)...end; </syntaxhighlight> Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{Code|{{sr|#findAnyHttp|p=Strony}}}}. Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji. Parametry ramki funkcji tablicy transportu: {{OpisParametrów | 1 = {{Code|tekst}} lub {{Code|1}} | _1 = Jest to tekst do sprawdzenia, czy strony {{Strong|http://}} i {{Strong|https://}}, są w tekście. }} Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki. Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica. Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|tekst}}, czy {{Code|1}}. Przykłady użycia: ; Pierwszy <syntaxhighlight lang="lua"> local tekst="Oto jest tekst z linkiem https://pl.wikibooks.org ilustrujący zasada działania Wikibooks"; local strony_modul=require("Module:Strony"); local czy_tak=strony_modul.ZnajdowanieJakikolwiekStronHttp(tekst); </syntaxhighlight> Funkcja zrzuci wynik pozytywny nienilowy. ; Drugi <syntaxhighlight lang="lua"> local tekst="Oto jest tekst z linkiem [https://pl.wikibooks.org pl.wikibooks.org] ilustrujący zasada działania Wikibooks"; local strony_modul=require("Module:Strony"); local czy_tak=strony_modul.ZnajdowanieJakikolwiekStronHttp(tekst); </syntaxhighlight> Funkcja zrzuci wynik pozytywny nienilowy. === {{Code|p.ZnajdowaniePlikowe}} === Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnajdowaniePlikowe(frame)...end; </syntaxhighlight> Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{Code|{{sr|#findFile|p=Strony}}}}. Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji. Parametry ramki funkcji tablicy transportu: {{OpisParametrów | 1 = {{Code|tekst}} lub {{Code|1}}| _1 = Tekst do spradzenia, czy strona ma wywołania plikowe. }} Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki. Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica. Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|tekst}}, czy {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local tekst="Strona z plikiem: [[Plik:Strona_plikowa.jpg|thumb|right|250px|link=w:Strona_na_wikipedii|Oto jest opis]], a oto jest dalszy tekst."; local strony_modul=require("Module:Strony"); local czy_tak=strony_modul.ZnajdowaniePlikowe(tekst); </syntaxhighlight> Funkcja zwróci wartość nienilową, czyli pozytywną. === {{Code|p.SprawdzanieRozmiaruPliku}} === Funkcję uruchamia się w ramce w wikikodzie w szablonie lub w kodzie {{lpg|Lua}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SprawdzanieRozmiaruPliku(frame)...end; </syntaxhighlight> Funkcja w swojej budowie bezpośrednio wykorzystuje funkcję {{Code|{{sr|#checkSizeFile|p=Strony}}}}. Funkcja wykorzystuje do zbierania parametrów funkcji funkcję: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}, którego parametr może być podany w postaci zmiennej łańcuchowej znaków, lub w postaci tablicy, a również w zmiennej {{Code|args}}, w tablicy, która jest parametrem funkcji, a nawet mogą być parametry podane w ramce z wywołaniem tej funkcji. Parametry ramki funkcji tablicy transportu: {{OpisParametrów | 1 = {{Code|rozmiar}} lub {{Code|1}} | _1 = Jak w: {{LinkPatrz|size}}. | 2 = {{Code|tryb}} lub {{Code|2}} | _2 = Jak w: {{LinkPatrz|tryb}}. }} Kolejność ważności parametrów jest podana w kolejności prostej jak to wyliczono parametry ramki. Ramka wywołana w wikikodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} uwzględnia parametry ramki, gdy ma on dodatkowy parametr dziecka {{Parametr|wyspecjalizowana|tak}}, w pezeciwnym wypadku liczą się parametry rodzica. Jeżeli tym argumentem funkcji nie jest tabela, czy sama ramka, wtedy jest to łańcuch znakowych, który tyle znaczy, co te jej parametry, czyli: {{Code|rozmiar}}, czy {{Code|1}}, wtedy zachodzi {{LinkPatrz|tryb {{=}} false}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1itq6oj3bbd53a06nynui16oef0n7hz Wikibooks:Moduły/Specjalne 4 63362 555628 554205 2026-09-11T04:52:00Z Persino 2851 555628 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Specjalne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje w tym module służą do specjalnych celów do obsługi na tekstach, nie tak jak {{Code|{{ld2|Szeregi}}}} (modyfikuje tekst, nawet w liniach), czy {{Code|{{ld2|Strony}}}} (która sprawdza wartość tekstową), a nawet {{Code|{{ld2|Parametry}}}} (do obsługi parametrów), albo {{Code|{{ld2|Html}}}} (do obsługi na tekstach związanych ze stronami HTML). Te funkcje służą do operacji na tekstach związanych z mechanizmem {{Strong|MediaWiki}}. == {{Code|GranicznieSzereg}} == Jest to funkcja lokalna w module {{Code|{{ld2|Specjalne}}}}, używana tylko wewnątrz funkcji należących do jego tablicy transportu. Funkcja ustawia tak wzór, który służy do wyszukiwania tekstu bezpośrednio do całego tekstu, jeśli {{Code|czy_granicznie{{=}}true}}, a gdy nie, to ta zmienna musi przyjmować wartość {{Code|nil}} lub {{Code|false}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function GranicznieSzereg(wzor,czy_granicznie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|wzor}} | _1 = Produkuje wzor, który nie dopasowuje domyślnie do całego ciągu znakowego. | 2 = {{Code|czy_granicznie}} | _2 = Robi ze wzoru wyrażenie regularne dopasowujące do całego ciągu znakowego. }} Przykład użycia funkcji: <syntaxhighlight lang="lua"> local wzor="%[%[.-%]%]"; local wzor2=GranicznieSzereg(wzor,true); </syntaxhighlight> Funkcja zwraca wynik {{Code|wzór2{{=}}"^%[%[.-%]%]$"}}. A gdy drugi parametr jest np. równy {{Code|nil}} lub {{Code|false}}, wtedy funkcja nie zmienia podanego wzoru, tylko go powtarza. == {{Code|p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki}} == Funkcja zmienia tagi znaczników, tzn. w nich znaki: {{Code|<}} i {{Code|>}}, na odpowiednie szablony, według podanego w module: {{Code|{{ld2|Specjalne/dane}}}}, kodu: <syntaxhighlight lang="lua"> local p={} p.szablony_anulowania_znaczeniowego_tagowego_mediawiki={ ["<"]="{{Mniejszy}}", [">"]="{{Większy}}", }; </syntaxhighlight> Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(szablon)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = Tekst, w którym znaki specjalne {{Code|<nowiki><></nowiki>}} są zamieniane na wywołania szablonowe kolejno: {{s|Mniejszy}} i {{s|Większy}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="<nowiki>Oto jest tekst</nowiki>"; local tekst2=specjalne_modul.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(tekst); </syntaxhighlight> Wyniki działania: <syntaxhighlight lang="lua"> local tekst2="{{Mniejszy}}nowiki{{Większy}}Oto jest tekst{{Mniejszy}}/nowiki{{Większy}}"; </syntaxhighlight> Ta funkcja wyłącza znaczenie specjalnych tagów mechanizmu {{Strong|MediaWiki}}, i je jako swoje on nie interpretuje, jedynie rozpatruje to jako zwykły tekst. Taki tekst można włączyć do funkcji {{Code|frame:preprocess}}, wtedy jedynie szablony {{s|Mniejszy}} i {{s|Większy}} zostaną rozwinięte, nie naruszając magiczności tych tagów. Tę funkcję jedynie się stosuje wtedy, gdy chcemy, by te tagi nie zostały zamienione na specjalne kody {{Strong|MediaWiki}} tego mechanizmu. Tak robimy, by później dało je usunąć bardzo łatwo, nie naruszając ich zawartości. == {{Code|p["UsuńŚciśleOkreśloneKategorie"]}} == Szablon usuwa ściśle określone kategorie z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńŚciśleOkreśloneKategorie"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|kategoria}} | _2 = Parametr mówiący jakie kategorie usunąć o takim samym adresie, w przypadku niepodania tego parametru, używane jest domyślne dopasowanie do wszystkich kategorii według wzoru {{Code|<nowiki>([^%[%]|]*)</nowiki>}}. | 3 = {{Code|3}} lub {{Code|granicznie}} | _3 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, tak samo, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Funkcja dopasowuje kategorie opisane przez nazwę kanoniczną: {{Code|Category}}, lub niekanoniczną: {{Code|Kategoria}}, niezależnie, czy takie wywołanie posiada nazwę sortowania, czy nie. Funkcja usuwa kategorie o danej nazwie, niezależnie jak ona została podana z iloma odstępami, czy dolnymi myślnikami, na jej początku, końcu, a nawet wewnątrz. Funkcja ustawia tak zmienną {{Code|kategoria}}, a właściwie ją przekształca, jeżeli została podana, tzn. zbędne myślniki i odstępy na początku i końcu z niej są usuwane, a wewnątrz je zostają zastąpione w niej przez wyrażenie: {{Code|[%s_]+}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego kategorie: [[Category:Nazwa kategorii|Nazwa sortowania 1]], i następna: [[Kategoria:Nazwa kategorii|Nazwa sortowania 2]]"; local kategoria="Nazwa kategorii"; local granicznie=""; local tekst2=specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{tekst=tekst,kategoria=kategoria,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[[Category:Nazwa kategorii|Nazwa sortowania 1]]</nowiki>}} i {{Code|<nowiki>[[Kategoria:Nazwa kategorii|Nazwa sortowania 2]]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego kategorie: , i następna: "; </syntaxhighlight> == {{Code|p["UsuńKategorie"]}} == Szablon usuwa wszystkie kategorie z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńKategorie"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|granicznie}} | _2 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, tak samo, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego kategorie: [[Category:Nazwa kategorii|Nazwa sortowania 1]], i następna: [[Kategoria:Nazwa kategorii|Nazwa sortowania 2]]"; local granicznie=""; local tekst2=specjalne_modul["UsuńKategorie"]{tekst=tekst,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[[Category:Nazwa kategorii|Nazwa sortowania 1]]</nowiki>}} i {{Code|<nowiki>[[Kategoria:Nazwa kategorii|Nazwa sortowania 2]]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego kategorie: , i następna: "; </syntaxhighlight> == {{Code|p["UsuńZnaczniki"]}} == Szablon usuwa wszystkie znaczniki bez zawartości z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńZnaczniki"]=function(frame,jakie,funkcja1,funkcja2)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, tak samo, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana jej zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Parametry typowe dla funkcji: * {{Code|jakie}} - nazwa znacznika, jaka ma być użyta do usuwania z tekstu {{Code|tekst}} znaczników bez zawartości z tym tagiem, w przeciwnym wypadku są usuwane wszystkie znaczniki bez zawartości, * {{Code|funkcja1}} - funkcja wywołana przed usuwaniem znaczników bez zawartości, * {{Code|funkcja2}} - funkcja wywołana po usuwaniu znaczników bez zawartości. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego w niej znaczniki: <span id=\"toc_1\" klasa=\"nazwa_klasy_1\">zawartość pierwsza</span>, i następna: <span id=\"toc _2\" klasa=\"nazwa_klasy_2\">zawartość druga</span>."; local tekst2=specjalne_modul["UsuńZnaczniki"](tekst,"span"); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja jedynie wtedy może być użyta z parametrami ramki. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli znaczniki: {{Code|<nowiki><span id="toc_1" klasa="nazwa_klasy_1"></nowiki>}} i {{Code|<nowiki><span id="toc _2" klasa="nazwa_klasy_2"></nowiki>}} oraz ich znaczniki końcowe, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego w niej znaczniki: zawartość pierwsza, i następna: zawartość druga."; </syntaxhighlight> == {{Code|p["UsuńKomentarze"]}} == Szablon usuwa wszystkie komentarze oznaczone blokiem początkowym {{Code|<nowiki><!--</nowiki>}} i końcowym {{Code|<nowiki>--></nowiki>}}, czyli razem (oznaczając to wyrażeniem regularnym {{lpg|Lua}} w {{lpr|Lua|Scribunto}}): {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, z tekstu wikikodu, dopasowując do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńKomentarze"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, tak samo, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego kategorie w komentarzach: <!--[[Category:Nazwa kategorii|Nazwa sortowania 1]], i następna: [[Kategoria:Nazwa kategorii|Nazwa sortowania 2]]-->"; -- Analogicznie: local tekst2=specjalne_modul["UsuńKomentarze"]{tekst=tekst,}; -- Analogicznie: local tekst2=specjalne_modul["UsuńKomentarze"]{args={tekst=tekst,},}; local tekst2=specjalne_modul["UsuńKomentarze"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja usuwa komentarze z tekstu oznaczonej zmienną {{Code|tekst}}, tworząc nowy: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego kategorie w komentarzach: "; </syntaxhighlight> == {{Code|p["UsuńSzablonyStylów"]}} == Szablon usuwa wszystkie szablony stylów z tekstu wikikodu, dopasowując do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńSzablonyStylów"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego w niej szablony stylów: '\"`UNIQ--templatestyles-00000048-QINU`\"'"; -- Analogicznie: local tekst2=specjalne_modul["UsuńSzablonyStylów"]{tekst=tekst,}; -- Analogicznie: local tekst2=specjalne_modul["UsuńSzablonyStylów"]{args={tekst=tekst,},}; local tekst2=specjalne_modul["UsuńSzablonyStylów"](tekst); </syntaxhighlight> W funkcji do usuwania stylów używana jest funkcja w postaci wywołania: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local wzor_stylowy=szablonowe_modul.NormaWzoruKodowaniaTekstu("templatestyles","%w+"); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli szablon stylów w postaci: {{Code|<nowiki>'"`UNIQ--templatestyles-00000048-QINU`"'</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego w niej szablony stylów: "; </syntaxhighlight> == {{Code|p["UsuńWywołaniaPlików"]}} == Szablon usuwa wszystkie wywołania plikowe, oznaczone, np.: {{Code|Image}}, {{Code|Grafika}}, {{Code|File}} i {{Code|Plik}}, z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńWywołaniaPlików"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|granicznie}} | _2 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego wywołania plikowe: [[Plik:Nazwa pliku 1|300x400px|thumb|right|Nazwa opisu dla pliku 1]], i następna: [[File:Nazwa pliku 2|300x400px|thumb|right|Nazwa opisu dla pliku 2]]"; local granicznie=""; local tekst2=specjalne_modul["UsuńWywołaniaPlików"]{tekst=tekst,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[[Plik:Nazwa pliku 1|300x400px|thumb|right|Nazwa opisu dla pliku 1]]</nowiki>}} i {{Code|<nowiki>[[File:Nazwa pliku 2|300x400px|thumb|right|Nazwa opisu dla pliku 2]]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego wywołania plikowe: , i następna: "; </syntaxhighlight> == {{Code|p["UsuńInterwiki"]}} == Szablon usuwa wszystkie interwiki z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńInterwiki"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|granicznie}} | _2 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego interwiki: [[en:w:Nazwa strony 1]], i następna: [[en:w:Nazwa strony 2]]"; local granicznie=""; local tekst2=specjalne_modul["UsuńInterwiki"]{tekst=tekst,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[[en:w:Nazwa strony 1]]</nowiki>}} i {{Code|<nowiki>[[en:w:Nazwa strony 2]]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego interwiki: , i następna: "; </syntaxhighlight> == {{Code|p["UsuńZnakiSpecjalne"]}} == Szablon usuwa wszystkie fragmenty tekstu, oznaczone potrójnym i podwójnym cudzysłowem pojedynczym, z tekstu wikikodu, dopasowując do poszczególnych części tekstu, zastępującje tymi fragmentami, ale bez cudzysłowów, a na samym końcu bezpośrednio usuwamy pozostałości z tymi cudzysłowami. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńZnakiSpecjalne"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest '''''wikikod z cudzysłowami'' i z następnym wikitekstem dalej''', i ''końcowym'''''"; --- Analogicznie: local tekst2=specjalne_modul["UsuńZnakiSpecjalne"]{tekst=tekst,}; --- Analogicznie: local tekst2=specjalne_modul["UsuńZnakiSpecjalne"]{args={tekst=tekst,},}; local tekst2=specjalne_modul["UsuńZnakiSpecjalne"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}} fragmenty tekstuz cudzysłowami i zastępuje je bez cudzysłowów: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod z cudzysłowami i z następnym wikitekstem dalej, i końcowym"; </syntaxhighlight> == {{Code|p["UsuńZbędneBiałeZnaki"]}} == Szablon usuwa wszystkie zbędne białe znaki, na początku i końcu oraz wewnątrz, z tekstu wikikodu, dopasowując do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńZbędneBiałeZnaki"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst=" Oto jest tekst wikikodu. "; -- Analogicznie: local tekst2=specjalne_modul["UsuńZbędneBiałeZnaki"]{tekst=tekst,}; -- Analogicznie: local tekst2=specjalne_modul["UsuńZbędneBiałeZnaki"]{args={tekst=tekst,},}; local tekst2=specjalne_modul["UsuńZbędneBiałeZnaki"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa odstępy początkowe i końcowe oraz powtarzające się w wewnątrz tekstu: <syntaxhighlight lang="lua"> local tekst2="Oto jest tekst wikikodu."; </syntaxhighlight> == {{Code|p["ZamieńLinkiWewnętrzneNaTekst"]}} == Szablon usuwa wszystkie linki wewnętrzne na ich nazwę linku, a jeżeli one tego nie posiadają, to jego adres wewnętrzny, z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ZamieńLinkiWewnętrzneNaTekst"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|granicznie}} | _2 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego linki wewnętrzne: [[:Category:Nazwa kategorii|Nazwa linku 1]], i następna: [[Wikibooks:Nazwa strony projektu]]."; local granicznie=""; local tekst2=specjalne_modul["ZamieńLinkiWewnętrzneNaTekst"]{tekst=tekst,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[[:Category:Nazwa kategorii|Nazwa linku 1]]</nowiki>}} i {{Code|<nowiki>[[Wikibooks:Nazwa strony projektu]]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego linki wewnętrzne: Nazwa linku 1, i następna: Wikibooks:Nazwa strony projektu."; </syntaxhighlight> == {{Code|p["ZamieńLinkiZewnętrzneNaTekst"]}} == Szablon usuwa wszystkie linki zewnętrzne na ich nazwę linku, a jeżeli one tego nie posiadają, to jego adres zewnętrzny, z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ZamieńLinkiZewnętrzneNaTekst"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|granicznie}} | _2 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego linki zewnętrzne: [https://pl.wikibooks.org/wiki/Category:Nazwa kategorii|Nazwa linku 1], i następna: [https://pl.wikibooks.org/wiki/Wikibooks:Nazwa strony projektu]."; local granicznie=""; local tekst2=specjalne_modul["ZamieńLinkiZewnętrzneNaTekst"]{tekst=tekst,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[https://pl.wikibooks.org/wiki/Category:Nazwa kategorii|Nazwa linku 1]</nowiki>}} i {{Code|<nowiki>[https://pl.wikibooks.org/wiki/Wikibooks:Nazwa strony projektu]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego linki zewnętrzne: Nazwa linku 1, i następna: https://pl.wikibooks.org/wiki/Wikibooks:Nazwa strony projektu."; </syntaxhighlight> == {{Code|p["CzyPlik"]}} == Szablon sprawdza zawartość tekstu wikikodu, czy jest on dokładnie wywołaniem pliku od początku do końca łańcucha, dopasowując do całości tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyPlik"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="[[Plik:Nazwa pliku.jpg|right|thumb|200x300px|Oto jest opis pliku]]"; -- Równoważne: local czy_tak=specjalne_modul["CzyPlik"]{tekst=tekst,}; -- Równoważne: local czy_tak=specjalne_modul["CzyPlik"]{args={tekst=tekst,},}; local czy_tak=specjalne_modul["CzyPlik"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja jedynie wtedy może być użyta z parametrami ramki. Funkcja w przykładzie z wynik w postaci zmiennej {{Code|czy_tak}} jako ciąg pewien niepusty, a jeżeli to nie jest wywołanie pliku, to uzyskujemy wynik {{Code|nil}}. == {{Code|p["CzyInterwiki"]}} == Szablon sprawdza zawartość tekstu wikikodu, czy jest on dokładnie wywołaniem interwiki od początku do końca łańcucha, dopasowując do całości tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyInterwiki"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="[[en:w:Stronana wikipedii]]"; -- Równoważne: local czy_tak=specjalne_modul["CzyInterwiki"]{tekst=tekst,}; -- Równoważne: local czy_tak=specjalne_modul["CzyInterwiki"]{args={tekst=tekst,},}; local czy_tak=specjalne_modul["CzyInterwiki"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja jedynie wtedy może być użyta z parametrami ramki. Funkcja w przykładzie z wynik w postaci zmiennej {{Code|czy_tak}} jako ciąg pewien niepusty, a jeżeli to nie jest wywołanie interwiki, to uzyskujemy wynik {{Code|nil}}. A jeżeli na początku interwiki jest {{Code|pl}}, to wtedy to nie jest jednak interwiki, tylko link wewnętrzny, z samej definicji interwiki. == {{Code|p["CzyAdresLinkuWewnętrznego"]}} == Szablon sprawdza zawartość tekstu wikikodu, czy jest on dokładnie adresem linku wewnętrznego od początku do końca łańcucha, dopasowując do całości tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyAdresLinkuWewnętrznego"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|dwukropek}} | _1 = Czy na początku linku wewnętrznego jest dwukropek, wtedy on na pewno jest linkiem wewnętrznym, a jezeli nie to jest sprawdzane, czy jest tak rzeczywiście, | 2 = {{Code|2}}, {{Code|tekst}} lub {{Code|adres}} | _2 = Tekst, który jest pewnym adresem do sprawdzenia,musi być to adres linku wewnętrznego. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|adres}}, a następnie {{Code|2}}, w przeciwnym wypadku jest sprawdzane ich poszczególnych istnienie pokolei i odpowiednio jest ściągana ich zawartość, w zależności, która zmienna jako pierwsza istnieje. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst=":en:w:Nazwa strony w przestrzeni głównej"; -- Równoważne: local czy_tak=specjalne_modul["CzyAdresLinkuWewnętrznego"](tekst); local czy_tak=specjalne_modul["CzyAdresLinkuWewnętrznego"]{tekst=tekst,dwukropek="",}; </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja jedynie wtedy może być użyta z parametrami ramki. Funkcja w przykładzie z wynik w postaci zmiennej {{Code|czy_tak}} jako ciąg pewien niepusty, a jeżeli to nie jest adresem linku wewnętrznego, to uzyskujemy wynik {{Code|nil}}. == {{Code|p["CzyLinkWewnętrzny"]}} == Szablon sprawdza zawartość tekstu wikikodu, czy jest on dokładnie wywołaniem linku wewnętrznego od początku do końca łańcucha, dopasowując do całości tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyLinkWewnętrzny"]=function(szablon)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="[[:en:w:Nazwa strony w przestrzeni głównej|Oto jest nazwa linku]]"; -- Równoważne: local czy_tak=specjalne_modul["CzyLinkWewnętrzny"]{tekst=tekst,}; -- Równoważne: local czy_tak=specjalne_modul["CzyLinkWewnętrzny"]{args={tekst=tekst,},}; local czy_tak=specjalne_modul["CzyLinkWewnętrzny"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja jedynie wtedy może być użyta z parametrami ramki. Funkcja w przykładzie z wynik w postaci zmiennej {{Code|czy_tak}} jako ciąg pewien niepusty, a jeżeli to nie jest wywołanie linku wewnętrznego, to uzyskujemy wynik {{Code|nil}}. == {{Code|p["WydzielZwykłyTekst"]}} == Szablon sprawdza zawartość tekstu wikikodu, i wydziela tekst z elementów mechanizmu MediaWiki wikikodu wolnego jego od elementów, w tym linki wewnętrzne, zewnętrzne, i inne. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["WydzielZwykłyTekst"]=function(frame,funkcja1,funkcja2)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|nieklasycznie}} | _2 = Wartość pusta lub niepodana oznacza, że ma rozwijać {{Code|tekst}} (lub {{Code|1}}), jak leci, bez ładowania potężnych szablonów przez mechanizm {{Code|{{M|Szablonowe}}}}. | 3 = {{Code|3}} lub {{Code|preprocess}} | _3 = Czy wikitekst z {{Code|tekst}} (lub {{Code|1}}) ma rozwijać, jak szablon. | 4 = {{Code|4}} lub {{Code|kodowanie}} | _4 = Czy wikikod ma kodować według jego zawartości. | 5 = {{Code|5}} lub {{Code|nagłówek}} | _5 = Niepuste, gdy ma nie usuwać znaczników {{Strong|TemplateStyles}}, znaków specjalnych, czyli pojedynczych cudzysłowów, a także znaczników, stosowana niezależnie od wartości {{Code|nieklasycznie}}. | 6 = {{Code|6}} lub {{Code|tablica kodowania}} | _6 = Gdy {{Code|nieklasycznie}} jest niepuste, i {{Code|kodowanie}} ma zawartość pustą, to ta zmienna posiada tablicę kodów {{Code|{{m|Szablonowe}}}}, która posłuży do rozwijania zakodowanego tą metodą tekstu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Parametry funkcji, nie ramki, czyli: {{OpisParametrów | 1 = {{Code|funkcja1}} | _1 = Funkcja zbierająca zawartości kodów i je przekształca w co innego, zwracany szablon, tj. wikikod nowego szablonu z kodami do rozwinięcia przez {{Code|{{m|Szablonowe}}}}. | 2 = {{Code|funkcja2}} | _2 = Kiedy ma rozwinąć ten kod, a może potraktować go jako wartość już rozwiniętą do końca i zwrócić w funkcji rozwijających kody. }} Gdy {{Code|nieklasycznie}} jest pusta lub niepodana, to funkcja robi operacje zdefiniowane jako przez funkcje: <syntaxhighlight lang="lua"> local function DwaNawiasyLinkowe(tekst) tekst=p["UsuńKategorie"]{tekst,nieklasycznie,}; tekst=p["UsuńWywołaniaPlików"]{tekst,nieklasycznie,}; tekst=p["UsuńInterwiki"]{tekst,nieklasycznie,}; tekst=p["ZamieńLinkiWewnętrzneNaTekst"]{tekst,nieklasycznie,}; return tekst; end; local function JedenNawiasLinkowe(tekst) tekst=p["ZamieńLinkiZewnętrzneNaTekst"]{tekst,nieklasycznie,}; return tekst; end; local function Komentarze(tekst) tekst=p["UsuńKomentarze"](tekst); return tekst; end; local function SzablonyStylowe(tekst) tekst=p["UsuńSzablonyStylów"](tekst); return tekst; end; local function ZnakiSpecjalne(tekst) tekst=p["UsuńZnakiSpecjalne"](tekst); return tekst; end; local function Znaczniki(tekst,jakie,__FUNKCJA1,__FUNKCJA2) tekst=p["UsuńZnaczniki"](tekst,jakie,__FUNKCJA1,__FUNKCJA2); return tekst; end; local function PreProcessFrame(tekst) local frame=mw.getCurrentFrame(); frame=frame.getParent and frame:getParent() or frame; tekst=frame:preprocess(tekst); return tekst; end; </syntaxhighlight> oprócz operacji: {{Code|SzablonyStylowe(tekst)}}, {{Code|ZnakiSpecjalne(tekst)}} i {{Code|Znaczniki(tekst,jakie,__FUNKCJA1,__FUNKCJA2)}}, gdy {{Code|nagłówek}} jest pusty lub niepodany, wtedy zwracany jest tekst, i kolejno te funkcje, a w przypadku przeciwnej wartości tej zmiennej jest zwracany tylko tekst. Perzy okazji można przez niepustej zmiennej {{Code|preproces}} znaki specjalne znaczników są zamieniane na szablony: {{s|Mniejszy}} i {{s|Większy}}, przy pomocy funkcji: {{Code|tekst{{=}}p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(tekst)}}, a następnie rozwijany jest funkcją {{Code|PreProcessFrame(tekst)}} przy wyłączeniu znaczenia znaczniki mechanizmu MediaWiki, nie HTML (bo są to dwie różne sprawy), ta operacja kjest robiona przed operacją przekształcania zmiennej wikikodu. Gdy {{Code|nieklasycznie}} przyjmuje wartość niepustą, wtedy moznaa zakodować tekst wikikodu, przy użyciu niepustej wartości {{Code|kodowanie}}, a przy innej wikikod powinien już być zakodowany na samym wyjściu. Gdy mamy obiekty w rozwijaniu przy pomocy {{Code|{{m|Szablonowe}}}}, można wygenerować nową zawartość szablonu, sprawdzić, czy ona się zgadza instrukcją: <syntaxhighlight lang="lua"> if(((not funkcja1) or (szablon))and((not funkcja2) or funkcja2(szablon,obiekt,kod)))then </syntaxhighlight> i dalej go przekształcać, przy zmiennej {{Code|nagłówek}} nie pustej, pozostawiając kody atrybutów, znaczników, i obiektów określonych normą: <syntaxhighlight lang="lua"> if((obiekt=="NOWIKI")or(obiekt=="MATH")or(obiekt=="ŹRÓDŁO")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU")or(obiekt=="PUDEŁKOWEJŚCIA")or(obiekt=="QUIZ"))then </syntaxhighlight> Po uzyskaniu tak rozwiniętego kody, przy zmiennej {{Code|nagłówek}} niepustej, wtedy zostaje nie zostaną wywołane funkcje: {{Code|tekst{{=}}SzablonyStylowe(tekst)}} i {{Code|tekst{{=}}ZnakiSpecjalne(tekst)}}, ale one zostają zwrócone po kolei wraz z wikikodem w pierwszej kolejności i dalej kolejno te funkcje. A gdy jednak ta pierwsza zmienna w tej linijce zostanie pusta lub niepodana, wtedy zwracany jest sam czysty rozwinięty i oczyszczony tekst. W module {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, wywoływana jest funkcja: <syntaxhighlight lang="lua"> local naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=specjalne_modul["WydzielZwykłyTekst"]( { -- Wikitekst z elementami mechanizmu MediaWiki tekst=naglowek, -- Zwróć test i funkcje, które muszą coś zrobić; ["nagłówek"]=true, -- Rób operacje według drugiego sposobu rozwijania z dwóch dostępnych; nieklasycznie=true, -- Ma nie kodować wikitekstu kodowanie=false, -- Gotowa tablica kodowania wikitekstu tekst; ["tablica kodowania"]=tablica_analizy_obiektow_strony_dany_modul, }, -- Funkcja: funkcja1; function(szablon,obiekt,kod) local szablon,wynik=SzablonyWywolywane(szablon,obiekt,kod); return szablon,wynik; end, --- Funkcja: funkcja2; function(szablon,obiekt,kod) return czy_indeksowanie; end); </syntaxhighlight> która oczyszcza tekst potrzebnymi funkcjami, zwracając również funkcje,które muszą dokonać dalszej roboty, jeżeli będzie ona potrzebna w jakieś formie. == {{Code|p["WydzielLiczbę"]}} == Szablon sprawdza zawartość tekstu wikikodu, i wydziela tekst z elementów mechanizmu wikikodu, w tym linki wewnętrzne, zewnętrzne, i inne. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["WydzielLiczbę"] = function(frame)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Funkcja do swojego działania wykorzystuje funkcję {{Code|{{sr|#p["WydzielZwykłyTekst"]|p=Specjalne}}}}, i wydziela z niej liczbę i ją zwraca w postaci przekłształconej do liczby przy pomocy funkcji {{Code|tunumber}}, a jeżeli takiej liczby nie znalazł, to zwraca {{Code|nil}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="[[:en:w:Wikipedia:Strona projektu wikipdii|Link +547 567 567]]"; -- Równoważnie: local liczba=specjalne_modul["WydzielLiczbę"]{tekst=tekst,}; -- Równoważnie: local liczba=specjalne_modul["WydzielLiczbę"]{args={tekst=tekst,},}; local liczba=specjalne_modul["WydzielLiczbę"](tekst); </syntaxhighlight> Funkcja zwraca liczbę po usunięciu odstępów w postaci zmiennej typu {{Code|number}}: <syntaxhighlight lang="lua"> local liczba=547567567; </syntaxhighlight> Fukcja jest wykorzystywana w funkcji: {{Code|{{sr|#p["Forma wyrażenia po liczbie"]|p=Techniczne}}}}, a więc i jednocześnie w szablonie: {{s|Forma wyrażenia po liczbie}} i jej pokrewnych z niej wynikających. == {{Code|p["PrzetwórzNagłówek"]}} == Szablon sprawdza zawartość tekstu wikikodu, i wydziela z niego adres linku wewnętrznego i nazwę linku (nagłówka). Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwórzNagłówek"]=function(adres,czy_naglowek_linku,czy_nie_rozwin_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Czy ma liczyć tylko adres (wartość typu {{Strong|string}}). | 2 = {{Code|czy_naglowek_linku}} | _2 = Czy ma liczyc nagłówek linku (wartość typu {{Strong|boolean}}). | 3 = {{Code|czy_nie_rozwin_adres}} | _3 = Czy adres linku ma rozwijać funkcją {{Code|frame:preprocess}} (wartość typu {{Strong|boolean}}). }} Funkcja używa do swojego działania {{Code|{{sr|#p["WydzielZwykłyTekst"]|p=Specjalne}}}} do wydzielania tekstu, zwraca tutaj przetworzony tekst wydzielony z elementów mechanizmu {{Strong|MediaWiki}}, oprócz zastosowania funkcji: {{Code|Znaczniki}}, {{Code|SzablonyStylowe}} i {{Code|ZnakiSpecjalne}}, które zostaną zastosowane do zwracanej pierwszej wartości podczas liczenia adresu, a podczas liczenia nagłówka tylko funkcja {{Code|Znaczniki}} zostanie zastosowana, ale tylko dla niektórych elementów, a nie dla wszystkich, a za to dla pierwszej, wręcz przeciwnie, dla wszystkich. Przykład: <syntaxhighlight lang="lua"> local adres,naglowek=specjalne_modul["PrzetwórzNagłówek"](adres,true,false); </syntaxhighlight> Funkcja liczy adres linku i nazwę linku (naglowka) linku, które są zwracane kolejno w postaci dwóch zwracanych zmiennych, mając jedynie nieprzetworzony adres w wikikodzie, z prawdopodobnie z elementami mechanizmu MediaWiki, co po zwróceniu dwóch zmiennych otrzymujemy oczyszczony z elementów mechanizmu {{Strong|MediaWiki}} i {{Strong|HTML}}, tak jest w przypadku zmiennej {{Code|adres}}, a dla {{Code|naglowek}} jedynie zawiera niektóre elementy znaczników {{Strong|HTML}}, elementy takie jak: {{Tag|ol}}, {{Code|ul}} i {{Code|li}}, w tej funkcji są usuwane z nagłówka elementu nazwy linku, a inne znaczniki, te które są również znacznikkami {{Strong|HTML}} w mechanizmie nie są usuwane, w tym również znacznik {{Tag|pre}}, który jest jednocześnie znacznikiem {{Strong|HTML}} i znacznikiem mechanizmu {{Strong|MediaWiki}}. == {{Code|p["OdstępyZmiennychNumerowanychSzablonu"]}} == Szablon sprawdza zawartość tekstu wikikodu, i wydziela domyślnie prawe odstępy od czarnych znaków wikikodu, w przeciwnym wypadku po podaniu pewnej zmiennej niepustej lewą. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["OdstępyZmiennychNumerowanychSzablonu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} | _1 = Zawartość tekstu z wikikodem. | 2 = {{Code|lewy}} | _2 = Czy ma wydzielać lewe odstępy w tekście {{Code|1}}, jeśli niepsuta, w przeciwnym wypadku prawą. }} Zwykłe szablony mają takę funkcję, że trimują zawartość zmiennej nienazwanej {{Code|1}}, jeżeli ją wsadzono do szablonu do zmiennej nazwanej, a więc wtedy jest konieczne używanie tejże funkcji w wikikodzie w szablonie, aby napisać jego lewe i prawe odstępy. To uwzględnia poniższy przykład: {{ŹródłoKodu|język=mediawiki|{{LuaSubst|{{ns:Template}}:L|inkludowana=tak}}}} Jest to kod przykładowego szablonu przekopiowany z: {{s|l}}, gdzie użycie tejże funkcji jest jednak konieczne. Funkcja kolejno w wywołaniach wydziela lewe a potem prawe odstępy zmiennej {{Code|1}}, przy użyciu parametru {{Parametr|wyspecjalizowana|tak}}. Funkcja produkuje link wewnętrzny za pomocą szablonu {{s|Link wewnętrzny}}, która ucina odstępy na początku i końcu zmiennej {{Code|s}}, a niekoniecznie {{Code|1}}. Przed i po linku są ustawiane odstępy, aby zachować historie produkowanych szablonów, jeżeli przeprowadzamy wizualizację danego szablonu. Szablonem do oglądania jego jest: {{s|PreWikikod}}, w którym jest ukryta funkcja {{Code|{{m|Techniczne|Wikikod}}}}. W tym szablonie jest ukryty inny szablon, a mianowicie {{s|Pre}}, dlatego jest zachowana historia, co do odstępów, i nowych linii, wikikodu. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> asny86hjm6n2jgn0wwsgxayhfe8r2fo 555629 555628 2026-09-11T04:53:37Z Persino 2851 /* {{Code|p["UsuńZnaczniki"]}} */ 555629 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Specjalne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Funkcje w tym module służą do specjalnych celów do obsługi na tekstach, nie tak jak {{Code|{{ld2|Szeregi}}}} (modyfikuje tekst, nawet w liniach), czy {{Code|{{ld2|Strony}}}} (która sprawdza wartość tekstową), a nawet {{Code|{{ld2|Parametry}}}} (do obsługi parametrów), albo {{Code|{{ld2|Html}}}} (do obsługi na tekstach związanych ze stronami HTML). Te funkcje służą do operacji na tekstach związanych z mechanizmem {{Strong|MediaWiki}}. == {{Code|GranicznieSzereg}} == Jest to funkcja lokalna w module {{Code|{{ld2|Specjalne}}}}, używana tylko wewnątrz funkcji należących do jego tablicy transportu. Funkcja ustawia tak wzór, który służy do wyszukiwania tekstu bezpośrednio do całego tekstu, jeśli {{Code|czy_granicznie{{=}}true}}, a gdy nie, to ta zmienna musi przyjmować wartość {{Code|nil}} lub {{Code|false}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function GranicznieSzereg(wzor,czy_granicznie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|wzor}} | _1 = Produkuje wzor, który nie dopasowuje domyślnie do całego ciągu znakowego. | 2 = {{Code|czy_granicznie}} | _2 = Robi ze wzoru wyrażenie regularne dopasowujące do całego ciągu znakowego. }} Przykład użycia funkcji: <syntaxhighlight lang="lua"> local wzor="%[%[.-%]%]"; local wzor2=GranicznieSzereg(wzor,true); </syntaxhighlight> Funkcja zwraca wynik {{Code|wzór2{{=}}"^%[%[.-%]%]$"}}. A gdy drugi parametr jest np. równy {{Code|nil}} lub {{Code|false}}, wtedy funkcja nie zmienia podanego wzoru, tylko go powtarza. == {{Code|p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki}} == Funkcja zmienia tagi znaczników, tzn. w nich znaki: {{Code|<}} i {{Code|>}}, na odpowiednie szablony, według podanego w module: {{Code|{{ld2|Specjalne/dane}}}}, kodu: <syntaxhighlight lang="lua"> local p={} p.szablony_anulowania_znaczeniowego_tagowego_mediawiki={ ["<"]="{{Mniejszy}}", [">"]="{{Większy}}", }; </syntaxhighlight> Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(szablon)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = Tekst, w którym znaki specjalne {{Code|<nowiki><></nowiki>}} są zamieniane na wywołania szablonowe kolejno: {{s|Mniejszy}} i {{s|Większy}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="<nowiki>Oto jest tekst</nowiki>"; local tekst2=specjalne_modul.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(tekst); </syntaxhighlight> Wyniki działania: <syntaxhighlight lang="lua"> local tekst2="{{Mniejszy}}nowiki{{Większy}}Oto jest tekst{{Mniejszy}}/nowiki{{Większy}}"; </syntaxhighlight> Ta funkcja wyłącza znaczenie specjalnych tagów mechanizmu {{Strong|MediaWiki}}, i je jako swoje on nie interpretuje, jedynie rozpatruje to jako zwykły tekst. Taki tekst można włączyć do funkcji {{Code|frame:preprocess}}, wtedy jedynie szablony {{s|Mniejszy}} i {{s|Większy}} zostaną rozwinięte, nie naruszając magiczności tych tagów. Tę funkcję jedynie się stosuje wtedy, gdy chcemy, by te tagi nie zostały zamienione na specjalne kody {{Strong|MediaWiki}} tego mechanizmu. Tak robimy, by później dało je usunąć bardzo łatwo, nie naruszając ich zawartości. == {{Code|p["UsuńŚciśleOkreśloneKategorie"]}} == Szablon usuwa ściśle określone kategorie z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńŚciśleOkreśloneKategorie"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|kategoria}} | _2 = Parametr mówiący jakie kategorie usunąć o takim samym adresie, w przypadku niepodania tego parametru, używane jest domyślne dopasowanie do wszystkich kategorii według wzoru {{Code|<nowiki>([^%[%]|]*)</nowiki>}}. | 3 = {{Code|3}} lub {{Code|granicznie}} | _3 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, tak samo, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Funkcja dopasowuje kategorie opisane przez nazwę kanoniczną: {{Code|Category}}, lub niekanoniczną: {{Code|Kategoria}}, niezależnie, czy takie wywołanie posiada nazwę sortowania, czy nie. Funkcja usuwa kategorie o danej nazwie, niezależnie jak ona została podana z iloma odstępami, czy dolnymi myślnikami, na jej początku, końcu, a nawet wewnątrz. Funkcja ustawia tak zmienną {{Code|kategoria}}, a właściwie ją przekształca, jeżeli została podana, tzn. zbędne myślniki i odstępy na początku i końcu z niej są usuwane, a wewnątrz je zostają zastąpione w niej przez wyrażenie: {{Code|[%s_]+}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego kategorie: [[Category:Nazwa kategorii|Nazwa sortowania 1]], i następna: [[Kategoria:Nazwa kategorii|Nazwa sortowania 2]]"; local kategoria="Nazwa kategorii"; local granicznie=""; local tekst2=specjalne_modul["UsuńŚciśleOkreśloneKategorie"]{tekst=tekst,kategoria=kategoria,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[[Category:Nazwa kategorii|Nazwa sortowania 1]]</nowiki>}} i {{Code|<nowiki>[[Kategoria:Nazwa kategorii|Nazwa sortowania 2]]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego kategorie: , i następna: "; </syntaxhighlight> == {{Code|p["UsuńKategorie"]}} == Szablon usuwa wszystkie kategorie z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńKategorie"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|granicznie}} | _2 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, tak samo, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego kategorie: [[Category:Nazwa kategorii|Nazwa sortowania 1]], i następna: [[Kategoria:Nazwa kategorii|Nazwa sortowania 2]]"; local granicznie=""; local tekst2=specjalne_modul["UsuńKategorie"]{tekst=tekst,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[[Category:Nazwa kategorii|Nazwa sortowania 1]]</nowiki>}} i {{Code|<nowiki>[[Kategoria:Nazwa kategorii|Nazwa sortowania 2]]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego kategorie: , i następna: "; </syntaxhighlight> == {{Code|p["UsuńZnaczniki"]}} == Szablon usuwa wszystkie znaczniki bez zawartości z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńZnaczniki"]=function(frame,jakie,funkcja1,funkcja2)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, tak samo, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana jej zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Parametry typowe dla funkcji: {{OpisParametrów | 1 = {{Code|jakie}} | _1 = Nazwa znacznika, jaka ma być użyta do usuwania z tekstu {{Code|tekst}} znaczników bez zawartości z tym tagiem, w przeciwnym wypadku są usuwane wszystkie znaczniki bez zawartości. | 2 = {{Code|funkcja1}} | _2 = Funkcja wywołana przed usuwaniem znaczników bez zawartości. | 3 = {{Code|funkcja2}} | _3 = Funkcja wywołana po usuwaniu znaczników bez zawartości. }} Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego w niej znaczniki: <span id=\"toc_1\" klasa=\"nazwa_klasy_1\">zawartość pierwsza</span>, i następna: <span id=\"toc _2\" klasa=\"nazwa_klasy_2\">zawartość druga</span>."; local tekst2=specjalne_modul["UsuńZnaczniki"](tekst,"span"); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja jedynie wtedy może być użyta z parametrami ramki. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli znaczniki: {{Code|<nowiki><span id="toc_1" klasa="nazwa_klasy_1"></nowiki>}} i {{Code|<nowiki><span id="toc _2" klasa="nazwa_klasy_2"></nowiki>}} oraz ich znaczniki końcowe, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego w niej znaczniki: zawartość pierwsza, i następna: zawartość druga."; </syntaxhighlight> == {{Code|p["UsuńKomentarze"]}} == Szablon usuwa wszystkie komentarze oznaczone blokiem początkowym {{Code|<nowiki><!--</nowiki>}} i końcowym {{Code|<nowiki>--></nowiki>}}, czyli razem (oznaczając to wyrażeniem regularnym {{lpg|Lua}} w {{lpr|Lua|Scribunto}}): {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, z tekstu wikikodu, dopasowując do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńKomentarze"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, tak samo, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego kategorie w komentarzach: <!--[[Category:Nazwa kategorii|Nazwa sortowania 1]], i następna: [[Kategoria:Nazwa kategorii|Nazwa sortowania 2]]-->"; -- Analogicznie: local tekst2=specjalne_modul["UsuńKomentarze"]{tekst=tekst,}; -- Analogicznie: local tekst2=specjalne_modul["UsuńKomentarze"]{args={tekst=tekst,},}; local tekst2=specjalne_modul["UsuńKomentarze"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja usuwa komentarze z tekstu oznaczonej zmienną {{Code|tekst}}, tworząc nowy: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego kategorie w komentarzach: "; </syntaxhighlight> == {{Code|p["UsuńSzablonyStylów"]}} == Szablon usuwa wszystkie szablony stylów z tekstu wikikodu, dopasowując do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńSzablonyStylów"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego w niej szablony stylów: '\"`UNIQ--templatestyles-00000048-QINU`\"'"; -- Analogicznie: local tekst2=specjalne_modul["UsuńSzablonyStylów"]{tekst=tekst,}; -- Analogicznie: local tekst2=specjalne_modul["UsuńSzablonyStylów"]{args={tekst=tekst,},}; local tekst2=specjalne_modul["UsuńSzablonyStylów"](tekst); </syntaxhighlight> W funkcji do usuwania stylów używana jest funkcja w postaci wywołania: <syntaxhighlight lang="lua"> local szablonowe_modul=require("Module:Szablonowe"); local wzor_stylowy=szablonowe_modul.NormaWzoruKodowaniaTekstu("templatestyles","%w+"); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli szablon stylów w postaci: {{Code|<nowiki>'"`UNIQ--templatestyles-00000048-QINU`"'</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego w niej szablony stylów: "; </syntaxhighlight> == {{Code|p["UsuńWywołaniaPlików"]}} == Szablon usuwa wszystkie wywołania plikowe, oznaczone, np.: {{Code|Image}}, {{Code|Grafika}}, {{Code|File}} i {{Code|Plik}}, z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńWywołaniaPlików"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|granicznie}} | _2 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego wywołania plikowe: [[Plik:Nazwa pliku 1|300x400px|thumb|right|Nazwa opisu dla pliku 1]], i następna: [[File:Nazwa pliku 2|300x400px|thumb|right|Nazwa opisu dla pliku 2]]"; local granicznie=""; local tekst2=specjalne_modul["UsuńWywołaniaPlików"]{tekst=tekst,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[[Plik:Nazwa pliku 1|300x400px|thumb|right|Nazwa opisu dla pliku 1]]</nowiki>}} i {{Code|<nowiki>[[File:Nazwa pliku 2|300x400px|thumb|right|Nazwa opisu dla pliku 2]]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego wywołania plikowe: , i następna: "; </syntaxhighlight> == {{Code|p["UsuńInterwiki"]}} == Szablon usuwa wszystkie interwiki z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńInterwiki"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|granicznie}} | _2 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego interwiki: [[en:w:Nazwa strony 1]], i następna: [[en:w:Nazwa strony 2]]"; local granicznie=""; local tekst2=specjalne_modul["UsuńInterwiki"]{tekst=tekst,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[[en:w:Nazwa strony 1]]</nowiki>}} i {{Code|<nowiki>[[en:w:Nazwa strony 2]]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego interwiki: , i następna: "; </syntaxhighlight> == {{Code|p["UsuńZnakiSpecjalne"]}} == Szablon usuwa wszystkie fragmenty tekstu, oznaczone potrójnym i podwójnym cudzysłowem pojedynczym, z tekstu wikikodu, dopasowując do poszczególnych części tekstu, zastępującje tymi fragmentami, ale bez cudzysłowów, a na samym końcu bezpośrednio usuwamy pozostałości z tymi cudzysłowami. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńZnakiSpecjalne"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest '''''wikikod z cudzysłowami'' i z następnym wikitekstem dalej''', i ''końcowym'''''"; --- Analogicznie: local tekst2=specjalne_modul["UsuńZnakiSpecjalne"]{tekst=tekst,}; --- Analogicznie: local tekst2=specjalne_modul["UsuńZnakiSpecjalne"]{args={tekst=tekst,},}; local tekst2=specjalne_modul["UsuńZnakiSpecjalne"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}} fragmenty tekstuz cudzysłowami i zastępuje je bez cudzysłowów: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod z cudzysłowami i z następnym wikitekstem dalej, i końcowym"; </syntaxhighlight> == {{Code|p["UsuńZbędneBiałeZnaki"]}} == Szablon usuwa wszystkie zbędne białe znaki, na początku i końcu oraz wewnątrz, z tekstu wikikodu, dopasowując do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńZbędneBiałeZnaki"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst=" Oto jest tekst wikikodu. "; -- Analogicznie: local tekst2=specjalne_modul["UsuńZbędneBiałeZnaki"]{tekst=tekst,}; -- Analogicznie: local tekst2=specjalne_modul["UsuńZbędneBiałeZnaki"]{args={tekst=tekst,},}; local tekst2=specjalne_modul["UsuńZbędneBiałeZnaki"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa odstępy początkowe i końcowe oraz powtarzające się w wewnątrz tekstu: <syntaxhighlight lang="lua"> local tekst2="Oto jest tekst wikikodu."; </syntaxhighlight> == {{Code|p["ZamieńLinkiWewnętrzneNaTekst"]}} == Szablon usuwa wszystkie linki wewnętrzne na ich nazwę linku, a jeżeli one tego nie posiadają, to jego adres wewnętrzny, z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ZamieńLinkiWewnętrzneNaTekst"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|granicznie}} | _2 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego linki wewnętrzne: [[:Category:Nazwa kategorii|Nazwa linku 1]], i następna: [[Wikibooks:Nazwa strony projektu]]."; local granicznie=""; local tekst2=specjalne_modul["ZamieńLinkiWewnętrzneNaTekst"]{tekst=tekst,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[[:Category:Nazwa kategorii|Nazwa linku 1]]</nowiki>}} i {{Code|<nowiki>[[Wikibooks:Nazwa strony projektu]]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego linki wewnętrzne: Nazwa linku 1, i następna: Wikibooks:Nazwa strony projektu."; </syntaxhighlight> == {{Code|p["ZamieńLinkiZewnętrzneNaTekst"]}} == Szablon usuwa wszystkie linki zewnętrzne na ich nazwę linku, a jeżeli one tego nie posiadają, to jego adres zewnętrzny, z tekstu wikikodu, dopasowując do całości lub do poszczególnych części tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ZamieńLinkiZewnętrzneNaTekst"]=function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|granicznie}} | _2 = Wskazujący, czy dopasować do całości (jeśli niepusta), czy w przeciwnym wypadku do poszczególnych części wikikodu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, czy {{Code|tekst}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="Oto jest wikikod i jego linki zewnętrzne: [https://pl.wikibooks.org/wiki/Category:Nazwa kategorii|Nazwa linku 1], i następna: [https://pl.wikibooks.org/wiki/Wikibooks:Nazwa strony projektu]."; local granicznie=""; local tekst2=specjalne_modul["ZamieńLinkiZewnętrzneNaTekst"]{tekst=tekst,granicznie=granicznie,}; </syntaxhighlight> Funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, tłumaczy wartość tekstową zmiennej {{Code|graniecznie}} na wartość {{Code|tak}} lub {{Code|nil}}, w przypadku niepodania tej zmiennej, to to tłumaczenie jest na tą ostatnią wartość. Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Powyższe wywołanie usuwa wywołanie z wikikodu ze zmiennej {{Code|tekst}}, czyli kategorie: {{Code|<nowiki>[https://pl.wikibooks.org/wiki/Category:Nazwa kategorii|Nazwa linku 1]</nowiki>}} i {{Code|<nowiki>[https://pl.wikibooks.org/wiki/Wikibooks:Nazwa strony projektu]</nowiki>}}, stąd pozostaje tylko tekst: <syntaxhighlight lang="lua"> local tekst2="Oto jest wikikod i jego linki zewnętrzne: Nazwa linku 1, i następna: https://pl.wikibooks.org/wiki/Wikibooks:Nazwa strony projektu."; </syntaxhighlight> == {{Code|p["CzyPlik"]}} == Szablon sprawdza zawartość tekstu wikikodu, czy jest on dokładnie wywołaniem pliku od początku do końca łańcucha, dopasowując do całości tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyPlik"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="[[Plik:Nazwa pliku.jpg|right|thumb|200x300px|Oto jest opis pliku]]"; -- Równoważne: local czy_tak=specjalne_modul["CzyPlik"]{tekst=tekst,}; -- Równoważne: local czy_tak=specjalne_modul["CzyPlik"]{args={tekst=tekst,},}; local czy_tak=specjalne_modul["CzyPlik"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja jedynie wtedy może być użyta z parametrami ramki. Funkcja w przykładzie z wynik w postaci zmiennej {{Code|czy_tak}} jako ciąg pewien niepusty, a jeżeli to nie jest wywołanie pliku, to uzyskujemy wynik {{Code|nil}}. == {{Code|p["CzyInterwiki"]}} == Szablon sprawdza zawartość tekstu wikikodu, czy jest on dokładnie wywołaniem interwiki od początku do końca łańcucha, dopasowując do całości tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyInterwiki"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="[[en:w:Stronana wikipedii]]"; -- Równoważne: local czy_tak=specjalne_modul["CzyInterwiki"]{tekst=tekst,}; -- Równoważne: local czy_tak=specjalne_modul["CzyInterwiki"]{args={tekst=tekst,},}; local czy_tak=specjalne_modul["CzyInterwiki"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja jedynie wtedy może być użyta z parametrami ramki. Funkcja w przykładzie z wynik w postaci zmiennej {{Code|czy_tak}} jako ciąg pewien niepusty, a jeżeli to nie jest wywołanie interwiki, to uzyskujemy wynik {{Code|nil}}. A jeżeli na początku interwiki jest {{Code|pl}}, to wtedy to nie jest jednak interwiki, tylko link wewnętrzny, z samej definicji interwiki. == {{Code|p["CzyAdresLinkuWewnętrznego"]}} == Szablon sprawdza zawartość tekstu wikikodu, czy jest on dokładnie adresem linku wewnętrznego od początku do końca łańcucha, dopasowując do całości tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyAdresLinkuWewnętrznego"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|dwukropek}} | _1 = Czy na początku linku wewnętrznego jest dwukropek, wtedy on na pewno jest linkiem wewnętrznym, a jezeli nie to jest sprawdzane, czy jest tak rzeczywiście, | 2 = {{Code|2}}, {{Code|tekst}} lub {{Code|adres}} | _2 = Tekst, który jest pewnym adresem do sprawdzenia,musi być to adres linku wewnętrznego. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|adres}}, a następnie {{Code|2}}, w przeciwnym wypadku jest sprawdzane ich poszczególnych istnienie pokolei i odpowiednio jest ściągana ich zawartość, w zależności, która zmienna jako pierwsza istnieje. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst=":en:w:Nazwa strony w przestrzeni głównej"; -- Równoważne: local czy_tak=specjalne_modul["CzyAdresLinkuWewnętrznego"](tekst); local czy_tak=specjalne_modul["CzyAdresLinkuWewnętrznego"]{tekst=tekst,dwukropek="",}; </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja jedynie wtedy może być użyta z parametrami ramki. Funkcja w przykładzie z wynik w postaci zmiennej {{Code|czy_tak}} jako ciąg pewien niepusty, a jeżeli to nie jest adresem linku wewnętrznego, to uzyskujemy wynik {{Code|nil}}. == {{Code|p["CzyLinkWewnętrzny"]}} == Szablon sprawdza zawartość tekstu wikikodu, czy jest on dokładnie wywołaniem linku wewnętrznego od początku do końca łańcucha, dopasowując do całości tekstu. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyLinkWewnętrzny"]=function(szablon)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="[[:en:w:Nazwa strony w przestrzeni głównej|Oto jest nazwa linku]]"; -- Równoważne: local czy_tak=specjalne_modul["CzyLinkWewnętrzny"]{tekst=tekst,}; -- Równoważne: local czy_tak=specjalne_modul["CzyLinkWewnętrzny"]{args={tekst=tekst,},}; local czy_tak=specjalne_modul["CzyLinkWewnętrzny"](tekst); </syntaxhighlight> Funkcja może być użyta w postaci ramki wikikodu z tymi samymi parametrami, co powyżej, tylko z tą różnicą, że parametry są wsadzane bezpośrednio do tego wywołania, o takiej samej wartości, co w powyższym przykładzie, lub można podać je w postaci zmiennych. Funkcja jedynie wtedy może być użyta z parametrami ramki. Funkcja w przykładzie z wynik w postaci zmiennej {{Code|czy_tak}} jako ciąg pewien niepusty, a jeżeli to nie jest wywołanie linku wewnętrznego, to uzyskujemy wynik {{Code|nil}}. == {{Code|p["WydzielZwykłyTekst"]}} == Szablon sprawdza zawartość tekstu wikikodu, i wydziela tekst z elementów mechanizmu MediaWiki wikikodu wolnego jego od elementów, w tym linki wewnętrzne, zewnętrzne, i inne. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["WydzielZwykłyTekst"]=function(frame,funkcja1,funkcja2)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. | 2 = {{Code|2}} lub {{Code|nieklasycznie}} | _2 = Wartość pusta lub niepodana oznacza, że ma rozwijać {{Code|tekst}} (lub {{Code|1}}), jak leci, bez ładowania potężnych szablonów przez mechanizm {{Code|{{M|Szablonowe}}}}. | 3 = {{Code|3}} lub {{Code|preprocess}} | _3 = Czy wikitekst z {{Code|tekst}} (lub {{Code|1}}) ma rozwijać, jak szablon. | 4 = {{Code|4}} lub {{Code|kodowanie}} | _4 = Czy wikikod ma kodować według jego zawartości. | 5 = {{Code|5}} lub {{Code|nagłówek}} | _5 = Niepuste, gdy ma nie usuwać znaczników {{Strong|TemplateStyles}}, znaków specjalnych, czyli pojedynczych cudzysłowów, a także znaczników, stosowana niezależnie od wartości {{Code|nieklasycznie}}. | 6 = {{Code|6}} lub {{Code|tablica kodowania}} | _6 = Gdy {{Code|nieklasycznie}} jest niepuste, i {{Code|kodowanie}} ma zawartość pustą, to ta zmienna posiada tablicę kodów {{Code|{{m|Szablonowe}}}}, która posłuży do rozwijania zakodowanego tą metodą tekstu. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Parametry funkcji, nie ramki, czyli: {{OpisParametrów | 1 = {{Code|funkcja1}} | _1 = Funkcja zbierająca zawartości kodów i je przekształca w co innego, zwracany szablon, tj. wikikod nowego szablonu z kodami do rozwinięcia przez {{Code|{{m|Szablonowe}}}}. | 2 = {{Code|funkcja2}} | _2 = Kiedy ma rozwinąć ten kod, a może potraktować go jako wartość już rozwiniętą do końca i zwrócić w funkcji rozwijających kody. }} Gdy {{Code|nieklasycznie}} jest pusta lub niepodana, to funkcja robi operacje zdefiniowane jako przez funkcje: <syntaxhighlight lang="lua"> local function DwaNawiasyLinkowe(tekst) tekst=p["UsuńKategorie"]{tekst,nieklasycznie,}; tekst=p["UsuńWywołaniaPlików"]{tekst,nieklasycznie,}; tekst=p["UsuńInterwiki"]{tekst,nieklasycznie,}; tekst=p["ZamieńLinkiWewnętrzneNaTekst"]{tekst,nieklasycznie,}; return tekst; end; local function JedenNawiasLinkowe(tekst) tekst=p["ZamieńLinkiZewnętrzneNaTekst"]{tekst,nieklasycznie,}; return tekst; end; local function Komentarze(tekst) tekst=p["UsuńKomentarze"](tekst); return tekst; end; local function SzablonyStylowe(tekst) tekst=p["UsuńSzablonyStylów"](tekst); return tekst; end; local function ZnakiSpecjalne(tekst) tekst=p["UsuńZnakiSpecjalne"](tekst); return tekst; end; local function Znaczniki(tekst,jakie,__FUNKCJA1,__FUNKCJA2) tekst=p["UsuńZnaczniki"](tekst,jakie,__FUNKCJA1,__FUNKCJA2); return tekst; end; local function PreProcessFrame(tekst) local frame=mw.getCurrentFrame(); frame=frame.getParent and frame:getParent() or frame; tekst=frame:preprocess(tekst); return tekst; end; </syntaxhighlight> oprócz operacji: {{Code|SzablonyStylowe(tekst)}}, {{Code|ZnakiSpecjalne(tekst)}} i {{Code|Znaczniki(tekst,jakie,__FUNKCJA1,__FUNKCJA2)}}, gdy {{Code|nagłówek}} jest pusty lub niepodany, wtedy zwracany jest tekst, i kolejno te funkcje, a w przypadku przeciwnej wartości tej zmiennej jest zwracany tylko tekst. Perzy okazji można przez niepustej zmiennej {{Code|preproces}} znaki specjalne znaczników są zamieniane na szablony: {{s|Mniejszy}} i {{s|Większy}}, przy pomocy funkcji: {{Code|tekst{{=}}p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(tekst)}}, a następnie rozwijany jest funkcją {{Code|PreProcessFrame(tekst)}} przy wyłączeniu znaczenia znaczniki mechanizmu MediaWiki, nie HTML (bo są to dwie różne sprawy), ta operacja kjest robiona przed operacją przekształcania zmiennej wikikodu. Gdy {{Code|nieklasycznie}} przyjmuje wartość niepustą, wtedy moznaa zakodować tekst wikikodu, przy użyciu niepustej wartości {{Code|kodowanie}}, a przy innej wikikod powinien już być zakodowany na samym wyjściu. Gdy mamy obiekty w rozwijaniu przy pomocy {{Code|{{m|Szablonowe}}}}, można wygenerować nową zawartość szablonu, sprawdzić, czy ona się zgadza instrukcją: <syntaxhighlight lang="lua"> if(((not funkcja1) or (szablon))and((not funkcja2) or funkcja2(szablon,obiekt,kod)))then </syntaxhighlight> i dalej go przekształcać, przy zmiennej {{Code|nagłówek}} nie pustej, pozostawiając kody atrybutów, znaczników, i obiektów określonych normą: <syntaxhighlight lang="lua"> if((obiekt=="NOWIKI")or(obiekt=="MATH")or(obiekt=="ŹRÓDŁO")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU")or(obiekt=="PUDEŁKOWEJŚCIA")or(obiekt=="QUIZ"))then </syntaxhighlight> Po uzyskaniu tak rozwiniętego kody, przy zmiennej {{Code|nagłówek}} niepustej, wtedy zostaje nie zostaną wywołane funkcje: {{Code|tekst{{=}}SzablonyStylowe(tekst)}} i {{Code|tekst{{=}}ZnakiSpecjalne(tekst)}}, ale one zostają zwrócone po kolei wraz z wikikodem w pierwszej kolejności i dalej kolejno te funkcje. A gdy jednak ta pierwsza zmienna w tej linijce zostanie pusta lub niepodana, wtedy zwracany jest sam czysty rozwinięty i oczyszczony tekst. W module {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, wywoływana jest funkcja: <syntaxhighlight lang="lua"> local naglowek,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=specjalne_modul["WydzielZwykłyTekst"]( { -- Wikitekst z elementami mechanizmu MediaWiki tekst=naglowek, -- Zwróć test i funkcje, które muszą coś zrobić; ["nagłówek"]=true, -- Rób operacje według drugiego sposobu rozwijania z dwóch dostępnych; nieklasycznie=true, -- Ma nie kodować wikitekstu kodowanie=false, -- Gotowa tablica kodowania wikitekstu tekst; ["tablica kodowania"]=tablica_analizy_obiektow_strony_dany_modul, }, -- Funkcja: funkcja1; function(szablon,obiekt,kod) local szablon,wynik=SzablonyWywolywane(szablon,obiekt,kod); return szablon,wynik; end, --- Funkcja: funkcja2; function(szablon,obiekt,kod) return czy_indeksowanie; end); </syntaxhighlight> która oczyszcza tekst potrzebnymi funkcjami, zwracając również funkcje,które muszą dokonać dalszej roboty, jeżeli będzie ona potrzebna w jakieś formie. == {{Code|p["WydzielLiczbę"]}} == Szablon sprawdza zawartość tekstu wikikodu, i wydziela tekst z elementów mechanizmu wikikodu, w tym linki wewnętrzne, zewnętrzne, i inne. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["WydzielLiczbę"] = function(frame)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|tekst}} | _1 = Parametr opisujący wikikod jako zwykły tekst. }} Parametry w jej wykazie są podanej w takiej odwrotnej kolejności, niż w jakiej są one sprawdzane, czy ta zmienna istnieje, czyli np. jeżeli zmienna {{Code|tekst}} istnieje, to nie jest wtedy sprawdzane {{Code|1}}, w przeciwnym wypadku jest sprawdzane jej istnienie i ściągana zawartość. Funkcja do swojego działania wykorzystuje funkcję {{Code|{{sr|#p["WydzielZwykłyTekst"]|p=Specjalne}}}}, i wydziela z niej liczbę i ją zwraca w postaci przekłształconej do liczby przy pomocy funkcji {{Code|tunumber}}, a jeżeli takiej liczby nie znalazł, to zwraca {{Code|nil}}. Przykłady użycia: <syntaxhighlight lang="lua"> local specjalne_modul=require("Module:Specjalne"); local tekst="[[:en:w:Wikipedia:Strona projektu wikipdii|Link +547 567 567]]"; -- Równoważnie: local liczba=specjalne_modul["WydzielLiczbę"]{tekst=tekst,}; -- Równoważnie: local liczba=specjalne_modul["WydzielLiczbę"]{args={tekst=tekst,},}; local liczba=specjalne_modul["WydzielLiczbę"](tekst); </syntaxhighlight> Funkcja zwraca liczbę po usunięciu odstępów w postaci zmiennej typu {{Code|number}}: <syntaxhighlight lang="lua"> local liczba=547567567; </syntaxhighlight> Fukcja jest wykorzystywana w funkcji: {{Code|{{sr|#p["Forma wyrażenia po liczbie"]|p=Techniczne}}}}, a więc i jednocześnie w szablonie: {{s|Forma wyrażenia po liczbie}} i jej pokrewnych z niej wynikających. == {{Code|p["PrzetwórzNagłówek"]}} == Szablon sprawdza zawartość tekstu wikikodu, i wydziela z niego adres linku wewnętrznego i nazwę linku (nagłówka). Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PrzetwórzNagłówek"]=function(adres,czy_naglowek_linku,czy_nie_rozwin_adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Czy ma liczyć tylko adres (wartość typu {{Strong|string}}). | 2 = {{Code|czy_naglowek_linku}} | _2 = Czy ma liczyc nagłówek linku (wartość typu {{Strong|boolean}}). | 3 = {{Code|czy_nie_rozwin_adres}} | _3 = Czy adres linku ma rozwijać funkcją {{Code|frame:preprocess}} (wartość typu {{Strong|boolean}}). }} Funkcja używa do swojego działania {{Code|{{sr|#p["WydzielZwykłyTekst"]|p=Specjalne}}}} do wydzielania tekstu, zwraca tutaj przetworzony tekst wydzielony z elementów mechanizmu {{Strong|MediaWiki}}, oprócz zastosowania funkcji: {{Code|Znaczniki}}, {{Code|SzablonyStylowe}} i {{Code|ZnakiSpecjalne}}, które zostaną zastosowane do zwracanej pierwszej wartości podczas liczenia adresu, a podczas liczenia nagłówka tylko funkcja {{Code|Znaczniki}} zostanie zastosowana, ale tylko dla niektórych elementów, a nie dla wszystkich, a za to dla pierwszej, wręcz przeciwnie, dla wszystkich. Przykład: <syntaxhighlight lang="lua"> local adres,naglowek=specjalne_modul["PrzetwórzNagłówek"](adres,true,false); </syntaxhighlight> Funkcja liczy adres linku i nazwę linku (naglowka) linku, które są zwracane kolejno w postaci dwóch zwracanych zmiennych, mając jedynie nieprzetworzony adres w wikikodzie, z prawdopodobnie z elementami mechanizmu MediaWiki, co po zwróceniu dwóch zmiennych otrzymujemy oczyszczony z elementów mechanizmu {{Strong|MediaWiki}} i {{Strong|HTML}}, tak jest w przypadku zmiennej {{Code|adres}}, a dla {{Code|naglowek}} jedynie zawiera niektóre elementy znaczników {{Strong|HTML}}, elementy takie jak: {{Tag|ol}}, {{Code|ul}} i {{Code|li}}, w tej funkcji są usuwane z nagłówka elementu nazwy linku, a inne znaczniki, te które są również znacznikkami {{Strong|HTML}} w mechanizmie nie są usuwane, w tym również znacznik {{Tag|pre}}, który jest jednocześnie znacznikiem {{Strong|HTML}} i znacznikiem mechanizmu {{Strong|MediaWiki}}. == {{Code|p["OdstępyZmiennychNumerowanychSzablonu"]}} == Szablon sprawdza zawartość tekstu wikikodu, i wydziela domyślnie prawe odstępy od czarnych znaków wikikodu, w przeciwnym wypadku po podaniu pewnej zmiennej niepustej lewą. Funkcja używa funkcji do zbierania parametrów opisany w punkcie: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["OdstępyZmiennychNumerowanychSzablonu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji: {{OpisParametrów | 1 = {{Code|1}} | _1 = Zawartość tekstu z wikikodem. | 2 = {{Code|lewy}} | _2 = Czy ma wydzielać lewe odstępy w tekście {{Code|1}}, jeśli niepsuta, w przeciwnym wypadku prawą. }} Zwykłe szablony mają takę funkcję, że trimują zawartość zmiennej nienazwanej {{Code|1}}, jeżeli ją wsadzono do szablonu do zmiennej nazwanej, a więc wtedy jest konieczne używanie tejże funkcji w wikikodzie w szablonie, aby napisać jego lewe i prawe odstępy. To uwzględnia poniższy przykład: {{ŹródłoKodu|język=mediawiki|{{LuaSubst|{{ns:Template}}:L|inkludowana=tak}}}} Jest to kod przykładowego szablonu przekopiowany z: {{s|l}}, gdzie użycie tejże funkcji jest jednak konieczne. Funkcja kolejno w wywołaniach wydziela lewe a potem prawe odstępy zmiennej {{Code|1}}, przy użyciu parametru {{Parametr|wyspecjalizowana|tak}}. Funkcja produkuje link wewnętrzny za pomocą szablonu {{s|Link wewnętrzny}}, która ucina odstępy na początku i końcu zmiennej {{Code|s}}, a niekoniecznie {{Code|1}}. Przed i po linku są ustawiane odstępy, aby zachować historie produkowanych szablonów, jeżeli przeprowadzamy wizualizację danego szablonu. Szablonem do oglądania jego jest: {{s|PreWikikod}}, w którym jest ukryta funkcja {{Code|{{m|Techniczne|Wikikod}}}}. W tym szablonie jest ukryty inny szablon, a mianowicie {{s|Pre}}, dlatego jest zachowana historia, co do odstępów, i nowych linii, wikikodu. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> q5ikit68urzndrhbzclxfjk0i74wqbo Wikibooks:Moduły/Html 4 63462 555620 553845 2026-09-11T04:08:37Z Persino 2851 555620 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} i zamieniania ich na odpowiednie znaki, zamieniania znaków na ich kody dziesiętne, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łączenie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p.KodowanieOmijanieFunkcyjne}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub, jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym, który w takim razie jest rozpatrywany. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|html}} | _1 = Ciąg do przetworzenia, w częściach bez parametrów omijanych. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodowanieOmijanieFunkcyjne/}}. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki, to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NS|l=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKlasyZnakowejDoKoduHtmlCiągu/}}. == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"]}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany kodów {{Strong|HTML}}, dziesiętnych i szesnastkowych, na znaki. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKoduHtmlDoZnakuCiągu/}}. == {{Code|p.ZnakiSpecjalneTaguNowiki}} == Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wyświetlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje, do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków, z zestawu znaków specjalnych wskazanych w funkcji, występujących w tagach języka '''HTML''' do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneTaguNowiki/}}. == {{Code|p.ZnakiSpecjalneWikiLinku}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneWikiLinku/}}. == {{Code|p.EncodeSpecjalneZnakiHtml}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu, | 2 = {{Code|normalnie}}| _2 c = Czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|html}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}, | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.EncodeZnakProloguList}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z podanego zestawu znaków pierwszych znaków listy, mechanizmu {{Strong|MediaWiki}}, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZnakProloguList/}}. == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|normalnie}} | _2 = czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. | 2 = {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryPrzypisaniaZnakowegoEncodeHtml/}}. == {{Code|p.PrzypisanieZnakoweEncodeHtml}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków przypisania {{Code|{{=}}}} do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PrzypisanieZnakoweEncodeHtml/}}. == {{Code|p.ZamianaDwukropkaNaKodHtml}} == Zamienia dwukropki na kody dziesiętne {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = zmienna, pod którym wyszukuje się tekst do zamiany ze znaku dwukropka do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaDwukropkaNaKodHtml/}}. == {{Code|p.KodHTMLZnaku}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} | _1 = zmienna, pod którym jesKodHTMLZnakut znak do zamiany na kod dziesiętny {{Strong|HTML}}. | 2 = {{Code|2}} | _2 = czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodHTMLZnaku/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodHTMLZnaku}}. == {{Code|p["KodyHTMLZnakówWikiCiągu"]}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} | _1 = Ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8. | 2 = {{Code|2}} | _2 = Czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodyHTMLZnakówWikiCiągu/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodyHTMLZnakówWikiCiągu}}. == {{Code|p.EncodeId}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: {{OpisParametrów| | 1 = {{Code|id}} | _1 = Ciąg do przeinaczenia. | 2 = {{Code|bez_transformacji}} | _2 = Gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr z ciągiem znakowym do operacji. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UsuwanieSpecjalnychNieschematycznychSymboli/}}. == {{Code|p.EncodeWiki}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"]|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, dalej zaraz funkcja {{LzLua|mw.text.encode}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy zakodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeWiki/}}. == {{Code|p.DecodeWiki}} == Funkcja {{LzLua|mw.text.decode}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy odkodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeWiki/}}. == {{Code|p.IsEncodedHtml}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{LzLua|mw.uri.encode}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{LzLua|mw.uri.decode}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do sprawdzenia - wymagany. | 2 = {{Code|encode}} | _2 = Gdy jest sprawdzana tylko obecność znaku {{Code|%}}. | 3 = {{Code|encode_real}} | _3 = gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/IsEncodedHtml/}}. == {{Code|p.EncodeHtml}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|b=tak}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do transformacji kodowania. | 2 = {{Code|encode}} i {{Code|encode_real}} | _2 = te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 3 = {{Code|czy_nie_odstepy}} | _3 = to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHtml/}}. == {{Code|p.DecodeHtml}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{LzLua|mw.uri.decode}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do odkodowania. | 2 = {{Code|spacje}} | _2 = Gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{LzLua|mw.uri.decode}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{LzLua|mw.uri.encode}}. | 3 = {{Code|encode}} i {{Code|encode_real}} | _3 = te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 4 = {{Code|czy_nie_odstepy}} | _4 = Gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHtml/}}. == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|znacznik}} | _1 = Atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody, o odpowiednim formacie, {{Strong|HTML}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml/}}. == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|value}} | _1 = Parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak/}}. == {{Code|p["NagłówekStronyAdresu"]}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_nie_dolne_myslniki}} | _2 = Gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników. | 3 = {{Code|tabela_nazw_adresu}} |_3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NagłówekStronyAdresu/}}. == {{Code|p["ParametryStronyAdresu"]}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} |_3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryStronyAdresu/}}. == {{Code|p["NazwaStronyAdresu"]}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} | _3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyAdresu/}}. == {{Code|p["NazwaStronyZParametrówStronyAdresu"]}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} lub {{Code|parametry}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyZParametrówStronyAdresu/}}. == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} | _3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PoprawAdresNagłówkaOrazParametrówStronyAdresu/}}. == {{Code|p.URLStrona}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/URLStrona/}}. == {{Code|p["UrlBezProtokołu"]}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie z opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UrlBezProtokołu/}}. == {{Code|p.DecodeKoduHTMLZnaku}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} na odpowiednie znaki. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeKoduHTMLZnaku/}}. == {{Code|p.ZamianaEncodeTekst}} == Adres strony dekoduje funkcją: {{LzLua|mw.uri.decode}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{LzLua|w.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeTekst/}}. == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - zawartość, na którą działamy, * {{Code|wzor}} - części do podziałania tą funkcją, * {{Code|funkcja}} - funkcja, którą działamy na te części. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeNaPodstawieWzoruTekstu/}}. == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do potrzelenia na trzy części. Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/StronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.TworzenieAdresuHtml}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieAdresuHtml/}}. == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieStronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.EncodeParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.EncodeParametryURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryURL/}}. == {{Code|p.EncodeZaawansowanyParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{LzLua|mw.uri.decode}}, a po nim {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryURL/}}. == {{Code|p.EncodeParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryHtml/}}. == {{Code|p.EncodeZaawansowanyParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, a przed nim wywoływana jest {{LzLua|mw.uri.decode}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryHtml/}}. == {{Code|p.EncodeHashKoduHtmlTekstu}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHashKoduHtmlTekstu/}}. == {{Code|p.DecodeHashKoduHtmlTekstu}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych zamian kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHashKoduHtmlTekstu/}}. == {{Code|p.EncodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeTempHashKoduHtmlTekstu/}}. == {{Code|p.DecodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeTempHashKoduHtmlTekstu/}}. == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"]|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresDomniemanieBezProtokolarnyEncodeURL/}}. == {{Code|p.UriEncode}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UriEncode/}}. == {{Code|p.EncodePodstawoweHtmlTekstu}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodePodstawoweHtmlTekstu/}}. == {{Code|p.EncodeElementyAdresuStrony}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{LzLua|mw.uri.decode}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeElementyAdresuStrony/}}. == {{Code|p.AdresProjektuEncodeHtml}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{LzLua|mw.uri.decode}}, a na końcu {{LzLua|mw.uri.encode}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu modułu, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresProjektuEncodeHtml/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> g10cp0jgg321ectmstpn1ptcfj78buj 555621 555620 2026-09-11T04:09:19Z Persino 2851 /* {{Code|p.EncodeSpecjalneZnakiHtml}} */ 555621 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} i zamieniania ich na odpowiednie znaki, zamieniania znaków na ich kody dziesiętne, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łączenie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p.KodowanieOmijanieFunkcyjne}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub, jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym, który w takim razie jest rozpatrywany. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|html}} | _1 = Ciąg do przetworzenia, w częściach bez parametrów omijanych. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodowanieOmijanieFunkcyjne/}}. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki, to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NS|l=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKlasyZnakowejDoKoduHtmlCiągu/}}. == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"]}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany kodów {{Strong|HTML}}, dziesiętnych i szesnastkowych, na znaki. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKoduHtmlDoZnakuCiągu/}}. == {{Code|p.ZnakiSpecjalneTaguNowiki}} == Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wyświetlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje, do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków, z zestawu znaków specjalnych wskazanych w funkcji, występujących w tagach języka '''HTML''' do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneTaguNowiki/}}. == {{Code|p.ZnakiSpecjalneWikiLinku}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneWikiLinku/}}. == {{Code|p.EncodeSpecjalneZnakiHtml}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu, | 2 = {{Code|normalnie}}| _2 = Czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|html}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}, | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.EncodeZnakProloguList}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z podanego zestawu znaków pierwszych znaków listy, mechanizmu {{Strong|MediaWiki}}, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZnakProloguList/}}. == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|normalnie}} | _2 = czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. | 2 = {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryPrzypisaniaZnakowegoEncodeHtml/}}. == {{Code|p.PrzypisanieZnakoweEncodeHtml}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków przypisania {{Code|{{=}}}} do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PrzypisanieZnakoweEncodeHtml/}}. == {{Code|p.ZamianaDwukropkaNaKodHtml}} == Zamienia dwukropki na kody dziesiętne {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = zmienna, pod którym wyszukuje się tekst do zamiany ze znaku dwukropka do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaDwukropkaNaKodHtml/}}. == {{Code|p.KodHTMLZnaku}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} | _1 = zmienna, pod którym jesKodHTMLZnakut znak do zamiany na kod dziesiętny {{Strong|HTML}}. | 2 = {{Code|2}} | _2 = czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodHTMLZnaku/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodHTMLZnaku}}. == {{Code|p["KodyHTMLZnakówWikiCiągu"]}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} | _1 = Ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8. | 2 = {{Code|2}} | _2 = Czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodyHTMLZnakówWikiCiągu/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodyHTMLZnakówWikiCiągu}}. == {{Code|p.EncodeId}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: {{OpisParametrów| | 1 = {{Code|id}} | _1 = Ciąg do przeinaczenia. | 2 = {{Code|bez_transformacji}} | _2 = Gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr z ciągiem znakowym do operacji. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UsuwanieSpecjalnychNieschematycznychSymboli/}}. == {{Code|p.EncodeWiki}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"]|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, dalej zaraz funkcja {{LzLua|mw.text.encode}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy zakodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeWiki/}}. == {{Code|p.DecodeWiki}} == Funkcja {{LzLua|mw.text.decode}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy odkodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeWiki/}}. == {{Code|p.IsEncodedHtml}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{LzLua|mw.uri.encode}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{LzLua|mw.uri.decode}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do sprawdzenia - wymagany. | 2 = {{Code|encode}} | _2 = Gdy jest sprawdzana tylko obecność znaku {{Code|%}}. | 3 = {{Code|encode_real}} | _3 = gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/IsEncodedHtml/}}. == {{Code|p.EncodeHtml}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|b=tak}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do transformacji kodowania. | 2 = {{Code|encode}} i {{Code|encode_real}} | _2 = te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 3 = {{Code|czy_nie_odstepy}} | _3 = to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHtml/}}. == {{Code|p.DecodeHtml}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{LzLua|mw.uri.decode}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do odkodowania. | 2 = {{Code|spacje}} | _2 = Gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{LzLua|mw.uri.decode}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{LzLua|mw.uri.encode}}. | 3 = {{Code|encode}} i {{Code|encode_real}} | _3 = te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 4 = {{Code|czy_nie_odstepy}} | _4 = Gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHtml/}}. == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|znacznik}} | _1 = Atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody, o odpowiednim formacie, {{Strong|HTML}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml/}}. == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|value}} | _1 = Parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak/}}. == {{Code|p["NagłówekStronyAdresu"]}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_nie_dolne_myslniki}} | _2 = Gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników. | 3 = {{Code|tabela_nazw_adresu}} |_3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NagłówekStronyAdresu/}}. == {{Code|p["ParametryStronyAdresu"]}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} |_3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryStronyAdresu/}}. == {{Code|p["NazwaStronyAdresu"]}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} | _3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyAdresu/}}. == {{Code|p["NazwaStronyZParametrówStronyAdresu"]}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} lub {{Code|parametry}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyZParametrówStronyAdresu/}}. == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} | _3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PoprawAdresNagłówkaOrazParametrówStronyAdresu/}}. == {{Code|p.URLStrona}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/URLStrona/}}. == {{Code|p["UrlBezProtokołu"]}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie z opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UrlBezProtokołu/}}. == {{Code|p.DecodeKoduHTMLZnaku}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} na odpowiednie znaki. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeKoduHTMLZnaku/}}. == {{Code|p.ZamianaEncodeTekst}} == Adres strony dekoduje funkcją: {{LzLua|mw.uri.decode}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{LzLua|w.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeTekst/}}. == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - zawartość, na którą działamy, * {{Code|wzor}} - części do podziałania tą funkcją, * {{Code|funkcja}} - funkcja, którą działamy na te części. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeNaPodstawieWzoruTekstu/}}. == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do potrzelenia na trzy części. Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/StronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.TworzenieAdresuHtml}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieAdresuHtml/}}. == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieStronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.EncodeParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.EncodeParametryURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryURL/}}. == {{Code|p.EncodeZaawansowanyParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{LzLua|mw.uri.decode}}, a po nim {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryURL/}}. == {{Code|p.EncodeParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryHtml/}}. == {{Code|p.EncodeZaawansowanyParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, a przed nim wywoływana jest {{LzLua|mw.uri.decode}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryHtml/}}. == {{Code|p.EncodeHashKoduHtmlTekstu}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHashKoduHtmlTekstu/}}. == {{Code|p.DecodeHashKoduHtmlTekstu}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych zamian kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHashKoduHtmlTekstu/}}. == {{Code|p.EncodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeTempHashKoduHtmlTekstu/}}. == {{Code|p.DecodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeTempHashKoduHtmlTekstu/}}. == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"]|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresDomniemanieBezProtokolarnyEncodeURL/}}. == {{Code|p.UriEncode}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UriEncode/}}. == {{Code|p.EncodePodstawoweHtmlTekstu}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodePodstawoweHtmlTekstu/}}. == {{Code|p.EncodeElementyAdresuStrony}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{LzLua|mw.uri.decode}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeElementyAdresuStrony/}}. == {{Code|p.AdresProjektuEncodeHtml}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{LzLua|mw.uri.decode}}, a na końcu {{LzLua|mw.uri.encode}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu modułu, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresProjektuEncodeHtml/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9mawjubjelq5wcw82sj2m7b8jbpr6xv 555622 555621 2026-09-11T04:10:07Z Persino 2851 /* {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml}} */ 555622 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} i zamieniania ich na odpowiednie znaki, zamieniania znaków na ich kody dziesiętne, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łączenie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p.KodowanieOmijanieFunkcyjne}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub, jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym, który w takim razie jest rozpatrywany. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|html}} | _1 = Ciąg do przetworzenia, w częściach bez parametrów omijanych. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodowanieOmijanieFunkcyjne/}}. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki, to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NS|l=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKlasyZnakowejDoKoduHtmlCiągu/}}. == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"]}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany kodów {{Strong|HTML}}, dziesiętnych i szesnastkowych, na znaki. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKoduHtmlDoZnakuCiągu/}}. == {{Code|p.ZnakiSpecjalneTaguNowiki}} == Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wyświetlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje, do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków, z zestawu znaków specjalnych wskazanych w funkcji, występujących w tagach języka '''HTML''' do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneTaguNowiki/}}. == {{Code|p.ZnakiSpecjalneWikiLinku}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneWikiLinku/}}. == {{Code|p.EncodeSpecjalneZnakiHtml}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu, | 2 = {{Code|normalnie}}| _2 = Czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|html}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}, | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.EncodeZnakProloguList}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z podanego zestawu znaków pierwszych znaków listy, mechanizmu {{Strong|MediaWiki}}, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZnakProloguList/}}. == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|normalnie}} | _2 = czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryPrzypisaniaZnakowegoEncodeHtml/}}. == {{Code|p.PrzypisanieZnakoweEncodeHtml}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków przypisania {{Code|{{=}}}} do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PrzypisanieZnakoweEncodeHtml/}}. == {{Code|p.ZamianaDwukropkaNaKodHtml}} == Zamienia dwukropki na kody dziesiętne {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = zmienna, pod którym wyszukuje się tekst do zamiany ze znaku dwukropka do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaDwukropkaNaKodHtml/}}. == {{Code|p.KodHTMLZnaku}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} | _1 = zmienna, pod którym jesKodHTMLZnakut znak do zamiany na kod dziesiętny {{Strong|HTML}}. | 2 = {{Code|2}} | _2 = czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodHTMLZnaku/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodHTMLZnaku}}. == {{Code|p["KodyHTMLZnakówWikiCiągu"]}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} | _1 = Ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8. | 2 = {{Code|2}} | _2 = Czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodyHTMLZnakówWikiCiągu/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodyHTMLZnakówWikiCiągu}}. == {{Code|p.EncodeId}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: {{OpisParametrów| | 1 = {{Code|id}} | _1 = Ciąg do przeinaczenia. | 2 = {{Code|bez_transformacji}} | _2 = Gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr z ciągiem znakowym do operacji. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UsuwanieSpecjalnychNieschematycznychSymboli/}}. == {{Code|p.EncodeWiki}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"]|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, dalej zaraz funkcja {{LzLua|mw.text.encode}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy zakodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeWiki/}}. == {{Code|p.DecodeWiki}} == Funkcja {{LzLua|mw.text.decode}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy odkodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeWiki/}}. == {{Code|p.IsEncodedHtml}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{LzLua|mw.uri.encode}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{LzLua|mw.uri.decode}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do sprawdzenia - wymagany. | 2 = {{Code|encode}} | _2 = Gdy jest sprawdzana tylko obecność znaku {{Code|%}}. | 3 = {{Code|encode_real}} | _3 = gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/IsEncodedHtml/}}. == {{Code|p.EncodeHtml}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|b=tak}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do transformacji kodowania. | 2 = {{Code|encode}} i {{Code|encode_real}} | _2 = te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 3 = {{Code|czy_nie_odstepy}} | _3 = to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHtml/}}. == {{Code|p.DecodeHtml}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{LzLua|mw.uri.decode}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do odkodowania. | 2 = {{Code|spacje}} | _2 = Gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{LzLua|mw.uri.decode}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{LzLua|mw.uri.encode}}. | 3 = {{Code|encode}} i {{Code|encode_real}} | _3 = te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 4 = {{Code|czy_nie_odstepy}} | _4 = Gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHtml/}}. == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|znacznik}} | _1 = Atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody, o odpowiednim formacie, {{Strong|HTML}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml/}}. == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|value}} | _1 = Parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak/}}. == {{Code|p["NagłówekStronyAdresu"]}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_nie_dolne_myslniki}} | _2 = Gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników. | 3 = {{Code|tabela_nazw_adresu}} |_3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NagłówekStronyAdresu/}}. == {{Code|p["ParametryStronyAdresu"]}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} |_3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryStronyAdresu/}}. == {{Code|p["NazwaStronyAdresu"]}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} | _3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyAdresu/}}. == {{Code|p["NazwaStronyZParametrówStronyAdresu"]}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} lub {{Code|parametry}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyZParametrówStronyAdresu/}}. == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} | _3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PoprawAdresNagłówkaOrazParametrówStronyAdresu/}}. == {{Code|p.URLStrona}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/URLStrona/}}. == {{Code|p["UrlBezProtokołu"]}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie z opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UrlBezProtokołu/}}. == {{Code|p.DecodeKoduHTMLZnaku}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} na odpowiednie znaki. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeKoduHTMLZnaku/}}. == {{Code|p.ZamianaEncodeTekst}} == Adres strony dekoduje funkcją: {{LzLua|mw.uri.decode}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{LzLua|w.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeTekst/}}. == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - zawartość, na którą działamy, * {{Code|wzor}} - części do podziałania tą funkcją, * {{Code|funkcja}} - funkcja, którą działamy na te części. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeNaPodstawieWzoruTekstu/}}. == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do potrzelenia na trzy części. Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/StronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.TworzenieAdresuHtml}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieAdresuHtml/}}. == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieStronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.EncodeParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.EncodeParametryURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryURL/}}. == {{Code|p.EncodeZaawansowanyParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{LzLua|mw.uri.decode}}, a po nim {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryURL/}}. == {{Code|p.EncodeParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryHtml/}}. == {{Code|p.EncodeZaawansowanyParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, a przed nim wywoływana jest {{LzLua|mw.uri.decode}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryHtml/}}. == {{Code|p.EncodeHashKoduHtmlTekstu}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHashKoduHtmlTekstu/}}. == {{Code|p.DecodeHashKoduHtmlTekstu}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych zamian kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHashKoduHtmlTekstu/}}. == {{Code|p.EncodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeTempHashKoduHtmlTekstu/}}. == {{Code|p.DecodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeTempHashKoduHtmlTekstu/}}. == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"]|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresDomniemanieBezProtokolarnyEncodeURL/}}. == {{Code|p.UriEncode}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UriEncode/}}. == {{Code|p.EncodePodstawoweHtmlTekstu}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodePodstawoweHtmlTekstu/}}. == {{Code|p.EncodeElementyAdresuStrony}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{LzLua|mw.uri.decode}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeElementyAdresuStrony/}}. == {{Code|p.AdresProjektuEncodeHtml}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{LzLua|mw.uri.decode}}, a na końcu {{LzLua|mw.uri.encode}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu modułu, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresProjektuEncodeHtml/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> o29kqn3max2ipukjoz1sj4ao7ah4hsn 555623 555622 2026-09-11T04:10:43Z Persino 2851 /* {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}} */ 555623 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} i zamieniania ich na odpowiednie znaki, zamieniania znaków na ich kody dziesiętne, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łączenie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p.KodowanieOmijanieFunkcyjne}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub, jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym, który w takim razie jest rozpatrywany. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|html}} | _1 = Ciąg do przetworzenia, w częściach bez parametrów omijanych. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodowanieOmijanieFunkcyjne/}}. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki, to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NS|l=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKlasyZnakowejDoKoduHtmlCiągu/}}. == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"]}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany kodów {{Strong|HTML}}, dziesiętnych i szesnastkowych, na znaki. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKoduHtmlDoZnakuCiągu/}}. == {{Code|p.ZnakiSpecjalneTaguNowiki}} == Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wyświetlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje, do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków, z zestawu znaków specjalnych wskazanych w funkcji, występujących w tagach języka '''HTML''' do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneTaguNowiki/}}. == {{Code|p.ZnakiSpecjalneWikiLinku}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneWikiLinku/}}. == {{Code|p.EncodeSpecjalneZnakiHtml}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu, | 2 = {{Code|normalnie}}| _2 = Czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|html}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}, | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.EncodeZnakProloguList}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z podanego zestawu znaków pierwszych znaków listy, mechanizmu {{Strong|MediaWiki}}, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZnakProloguList/}}. == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|normalnie}} | _2 = czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryPrzypisaniaZnakowegoEncodeHtml/}}. == {{Code|p.PrzypisanieZnakoweEncodeHtml}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków przypisania {{Code|{{=}}}} do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PrzypisanieZnakoweEncodeHtml/}}. == {{Code|p.ZamianaDwukropkaNaKodHtml}} == Zamienia dwukropki na kody dziesiętne {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = zmienna, pod którym wyszukuje się tekst do zamiany ze znaku dwukropka do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaDwukropkaNaKodHtml/}}. == {{Code|p.KodHTMLZnaku}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} | _1 = zmienna, pod którym jesKodHTMLZnakut znak do zamiany na kod dziesiętny {{Strong|HTML}}. | 2 = {{Code|2}} | _2 = czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodHTMLZnaku/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodHTMLZnaku}}. == {{Code|p["KodyHTMLZnakówWikiCiągu"]}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} | _1 = Ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8. | 2 = {{Code|2}} | _2 = Czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodyHTMLZnakówWikiCiągu/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodyHTMLZnakówWikiCiągu}}. == {{Code|p.EncodeId}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: {{OpisParametrów| | 1 = {{Code|id}} | _1 = Ciąg do przeinaczenia. | 2 = {{Code|bez_transformacji}} | _2 = Gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr z ciągiem znakowym do operacji. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UsuwanieSpecjalnychNieschematycznychSymboli/}}. == {{Code|p.EncodeWiki}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"]|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, dalej zaraz funkcja {{LzLua|mw.text.encode}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy zakodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeWiki/}}. == {{Code|p.DecodeWiki}} == Funkcja {{LzLua|mw.text.decode}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy odkodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeWiki/}}. == {{Code|p.IsEncodedHtml}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{LzLua|mw.uri.encode}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{LzLua|mw.uri.decode}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do sprawdzenia - wymagany. | 2 = {{Code|encode}} | _2 = Gdy jest sprawdzana tylko obecność znaku {{Code|%}}. | 3 = {{Code|encode_real}} | _3 = gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/IsEncodedHtml/}}. == {{Code|p.EncodeHtml}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|b=tak}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do transformacji kodowania. | 2 = {{Code|encode}} i {{Code|encode_real}} | _2 = te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 3 = {{Code|czy_nie_odstepy}} | _3 = to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHtml/}}. == {{Code|p.DecodeHtml}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{LzLua|mw.uri.decode}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do odkodowania. | 2 = {{Code|spacje}} | _2 = Gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{LzLua|mw.uri.decode}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{LzLua|mw.uri.encode}}. | 3 = {{Code|encode}} i {{Code|encode_real}} | _3 = te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 4 = {{Code|czy_nie_odstepy}} | _4 = Gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHtml/}}. == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|znacznik}} | _1 = Atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody, o odpowiednim formacie, {{Strong|HTML}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml/}}. == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|value}} | _1 = Parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak/}}. == {{Code|p["NagłówekStronyAdresu"]}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_nie_dolne_myslniki}} | _2 = Gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników. | 3 = {{Code|tabela_nazw_adresu}} |_3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NagłówekStronyAdresu/}}. == {{Code|p["ParametryStronyAdresu"]}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} |_3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryStronyAdresu/}}. == {{Code|p["NazwaStronyAdresu"]}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} | _3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyAdresu/}}. == {{Code|p["NazwaStronyZParametrówStronyAdresu"]}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} lub {{Code|parametry}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyZParametrówStronyAdresu/}}. == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. | 3 = {{Code|tabela_nazw_adresu}} | _3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PoprawAdresNagłówkaOrazParametrówStronyAdresu/}}. == {{Code|p.URLStrona}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/URLStrona/}}. == {{Code|p["UrlBezProtokołu"]}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie z opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UrlBezProtokołu/}}. == {{Code|p.DecodeKoduHTMLZnaku}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} na odpowiednie znaki. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeKoduHTMLZnaku/}}. == {{Code|p.ZamianaEncodeTekst}} == Adres strony dekoduje funkcją: {{LzLua|mw.uri.decode}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{LzLua|w.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeTekst/}}. == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - zawartość, na którą działamy, * {{Code|wzor}} - części do podziałania tą funkcją, * {{Code|funkcja}} - funkcja, którą działamy na te części. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeNaPodstawieWzoruTekstu/}}. == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do potrzelenia na trzy części. Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/StronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.TworzenieAdresuHtml}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieAdresuHtml/}}. == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieStronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.EncodeParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.EncodeParametryURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryURL/}}. == {{Code|p.EncodeZaawansowanyParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{LzLua|mw.uri.decode}}, a po nim {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryURL/}}. == {{Code|p.EncodeParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryHtml/}}. == {{Code|p.EncodeZaawansowanyParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, a przed nim wywoływana jest {{LzLua|mw.uri.decode}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryHtml/}}. == {{Code|p.EncodeHashKoduHtmlTekstu}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHashKoduHtmlTekstu/}}. == {{Code|p.DecodeHashKoduHtmlTekstu}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych zamian kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHashKoduHtmlTekstu/}}. == {{Code|p.EncodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeTempHashKoduHtmlTekstu/}}. == {{Code|p.DecodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeTempHashKoduHtmlTekstu/}}. == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"]|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresDomniemanieBezProtokolarnyEncodeURL/}}. == {{Code|p.UriEncode}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UriEncode/}}. == {{Code|p.EncodePodstawoweHtmlTekstu}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodePodstawoweHtmlTekstu/}}. == {{Code|p.EncodeElementyAdresuStrony}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{LzLua|mw.uri.decode}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeElementyAdresuStrony/}}. == {{Code|p.AdresProjektuEncodeHtml}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{LzLua|mw.uri.decode}}, a na końcu {{LzLua|mw.uri.encode}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu modułu, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresProjektuEncodeHtml/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9cglvk38q3rewwr6vpetxx4c2ol6z24 555624 555623 2026-09-11T04:15:51Z Persino 2851 555624 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} i zamieniania ich na odpowiednie znaki, zamieniania znaków na ich kody dziesiętne, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łączenie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p.KodowanieOmijanieFunkcyjne}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub, jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym, który w takim razie jest rozpatrywany. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|html}} | _1 = Ciąg do przetworzenia, w częściach bez parametrów omijanych. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodowanieOmijanieFunkcyjne/}}. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki, to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NS|l=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKlasyZnakowejDoKoduHtmlCiągu/}}. == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"]}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany kodów {{Strong|HTML}}, dziesiętnych i szesnastkowych, na znaki. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKoduHtmlDoZnakuCiągu/}}. == {{Code|p.ZnakiSpecjalneTaguNowiki}} == Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wyświetlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje, do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków, z zestawu znaków specjalnych wskazanych w funkcji, występujących w tagach języka '''HTML''' do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneTaguNowiki/}}. == {{Code|p.ZnakiSpecjalneWikiLinku}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneWikiLinku/}}. == {{Code|p.EncodeSpecjalneZnakiHtml}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu, | 2 = {{Code|normalnie}}| _2 = Czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|html}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}, | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.EncodeZnakProloguList}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z podanego zestawu znaków pierwszych znaków listy, mechanizmu {{Strong|MediaWiki}}, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZnakProloguList/}}. == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|normalnie}} | _2 = czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryPrzypisaniaZnakowegoEncodeHtml/}}. == {{Code|p.PrzypisanieZnakoweEncodeHtml}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków przypisania {{Code|{{=}}}} do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PrzypisanieZnakoweEncodeHtml/}}. == {{Code|p.ZamianaDwukropkaNaKodHtml}} == Zamienia dwukropki na kody dziesiętne {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|tekst}} | _1 = zmienna, pod którym wyszukuje się tekst do zamiany ze znaku dwukropka do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaDwukropkaNaKodHtml/}}. == {{Code|p.KodHTMLZnaku}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} | _1 = zmienna, pod którym jesKodHTMLZnakut znak do zamiany na kod dziesiętny {{Strong|HTML}}. | 2 = {{Code|2}} | _2 = czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodHTMLZnaku/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodHTMLZnaku}}. == {{Code|p["KodyHTMLZnakówWikiCiągu"]}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} | _1 = Ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8. | 2 = {{Code|2}} | _2 = Czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodyHTMLZnakówWikiCiągu/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodyHTMLZnakówWikiCiągu}}. == {{Code|p.EncodeId}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: {{OpisParametrów| | 1 = {{Code|id}} | _1 = Ciąg do przeinaczenia. | 2 = {{Code|bez_transformacji}} | _2 = Gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr z ciągiem znakowym do operacji. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UsuwanieSpecjalnychNieschematycznychSymboli/}}. == {{Code|p.EncodeWiki}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"]|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, dalej zaraz funkcja {{LzLua|mw.text.encode}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy zakodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeWiki/}}. == {{Code|p.DecodeWiki}} == Funkcja {{LzLua|mw.text.decode}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy odkodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeWiki/}}. == {{Code|p.IsEncodedHtml}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{LzLua|mw.uri.encode}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{LzLua|mw.uri.decode}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do sprawdzenia - wymagany. | 2 = {{Code|encode}} | _2 = Gdy jest sprawdzana tylko obecność znaku {{Code|%}}. | 3 = {{Code|encode_real}} | _3 = gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/IsEncodedHtml/}}. == {{Code|p.EncodeHtml}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|b=tak}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do transformacji kodowania. | 2 = {{Code|encode}} i {{Code|encode_real}} | _2 = te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 3 = {{Code|czy_nie_odstepy}} | _3 = to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHtml/}}. == {{Code|p.DecodeHtml}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{LzLua|mw.uri.decode}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|parametr}} | _1 = Parametr do odkodowania. | 2 = {{Code|spacje}} | _2 = Gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{LzLua|mw.uri.decode}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{LzLua|mw.uri.encode}}. | 3 = {{Code|encode}} i {{Code|encode_real}} | _3 = te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 4 = {{Code|czy_nie_odstepy}} | _4 = Gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHtml/}}. == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|znacznik}} | _1 = Atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody, o odpowiednim formacie, {{Strong|HTML}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml/}}. == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|value}} | _1 = Parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak/}}. == {{Code|p["NagłówekStronyAdresu"]}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_nie_dolne_myslniki}} | _2 = Gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników. | 3 = {{Code|tabela_nazw_adresu}} |_3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NagłówekStronyAdresu/}}. == {{Code|p["ParametryStronyAdresu"]}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} |_3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryStronyAdresu/}}. == {{Code|p["NazwaStronyAdresu"]}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} | _3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyAdresu/}}. == {{Code|p["NazwaStronyZParametrówStronyAdresu"]}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}} lub {{Code|parametry}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyZParametrówStronyAdresu/}}. == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. | 3 = {{Code|tabela_nazw_adresu}} | _3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów| | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PoprawAdresNagłówkaOrazParametrówStronyAdresu/}}. == {{Code|p.URLStrona}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/URLStrona/}}. == {{Code|p["UrlBezProtokołu"]}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie z opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UrlBezProtokołu/}}. == {{Code|p.DecodeKoduHTMLZnaku}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} na odpowiednie znaki. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeKoduHTMLZnaku/}}. == {{Code|p.ZamianaEncodeTekst}} == Adres strony dekoduje funkcją: {{LzLua|mw.uri.decode}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{LzLua|w.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeTekst/}}. == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - zawartość, na którą działamy, * {{Code|wzor}} - części do podziałania tą funkcją, * {{Code|funkcja}} - funkcja, którą działamy na te części. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeNaPodstawieWzoruTekstu/}}. == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do potrzelenia na trzy części. Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/StronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.TworzenieAdresuHtml}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieAdresuHtml/}}. == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieStronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.EncodeParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.EncodeParametryURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryURL/}}. == {{Code|p.EncodeZaawansowanyParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{LzLua|mw.uri.decode}}, a po nim {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryURL/}}. == {{Code|p.EncodeParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryHtml/}}. == {{Code|p.EncodeZaawansowanyParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, a przed nim wywoływana jest {{LzLua|mw.uri.decode}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryHtml/}}. == {{Code|p.EncodeHashKoduHtmlTekstu}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHashKoduHtmlTekstu/}}. == {{Code|p.DecodeHashKoduHtmlTekstu}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych zamian kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHashKoduHtmlTekstu/}}. == {{Code|p.EncodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeTempHashKoduHtmlTekstu/}}. == {{Code|p.DecodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeTempHashKoduHtmlTekstu/}}. == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"]|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresDomniemanieBezProtokolarnyEncodeURL/}}. == {{Code|p.UriEncode}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UriEncode/}}. == {{Code|p.EncodePodstawoweHtmlTekstu}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodePodstawoweHtmlTekstu/}}. == {{Code|p.EncodeElementyAdresuStrony}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{LzLua|mw.uri.decode}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeElementyAdresuStrony/}}. == {{Code|p.AdresProjektuEncodeHtml}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{LzLua|mw.uri.decode}}, a na końcu {{LzLua|mw.uri.encode}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu modułu, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresProjektuEncodeHtml/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pbav1vbcnb3um68w98214b1ptzrcgx0 555625 555624 2026-09-11T04:17:43Z Persino 2851 555625 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} i zamieniania ich na odpowiednie znaki, zamieniania znaków na ich kody dziesiętne, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łączenie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p.KodowanieOmijanieFunkcyjne}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub, jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym, który w takim razie jest rozpatrywany. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|html}} | _1 = Ciąg do przetworzenia, w częściach bez parametrów omijanych. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodowanieOmijanieFunkcyjne/}}. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki, to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NS|l=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKlasyZnakowejDoKoduHtmlCiągu/}}. == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"]}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany kodów {{Strong|HTML}}, dziesiętnych i szesnastkowych, na znaki. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKoduHtmlDoZnakuCiągu/}}. == {{Code|p.ZnakiSpecjalneTaguNowiki}} == Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wyświetlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje, do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków, z zestawu znaków specjalnych wskazanych w funkcji, występujących w tagach języka '''HTML''' do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneTaguNowiki/}}. == {{Code|p.ZnakiSpecjalneWikiLinku}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneWikiLinku/}}. == {{Code|p.EncodeSpecjalneZnakiHtml}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu, | 2 = {{Code|normalnie}}| _2 = Czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|html}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}, | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.EncodeZnakProloguList}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z podanego zestawu znaków pierwszych znaków listy, mechanizmu {{Strong|MediaWiki}}, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZnakProloguList/}}. == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|normalnie}} | _2 = czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryPrzypisaniaZnakowegoEncodeHtml/}}. == {{Code|p.PrzypisanieZnakoweEncodeHtml}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków przypisania {{Code|{{=}}}} do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PrzypisanieZnakoweEncodeHtml/}}. == {{Code|p.ZamianaDwukropkaNaKodHtml}} == Zamienia dwukropki na kody dziesiętne {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = zmienna, pod którym wyszukuje się tekst do zamiany ze znaku dwukropka do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaDwukropkaNaKodHtml/}}. == {{Code|p.KodHTMLZnaku}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} | _1 = zmienna, pod którym jesKodHTMLZnakut znak do zamiany na kod dziesiętny {{Strong|HTML}}. | 2 = {{Code|2}} | _2 = czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodHTMLZnaku/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodHTMLZnaku}}. == {{Code|p["KodyHTMLZnakówWikiCiągu"]}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} | _1 = Ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8. | 2 = {{Code|2}} | _2 = Czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodyHTMLZnakówWikiCiągu/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodyHTMLZnakówWikiCiągu}}. == {{Code|p.EncodeId}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: {{OpisParametrów | 1 = {{Code|id}} | _1 = Ciąg do przeinaczenia. | 2 = {{Code|bez_transformacji}} | _2 = Gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr z ciągiem znakowym do operacji. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UsuwanieSpecjalnychNieschematycznychSymboli/}}. == {{Code|p.EncodeWiki}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"]|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, dalej zaraz funkcja {{LzLua|mw.text.encode}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy zakodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeWiki/}}. == {{Code|p.DecodeWiki}} == Funkcja {{LzLua|mw.text.decode}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy odkodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeWiki/}}. == {{Code|p.IsEncodedHtml}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{LzLua|mw.uri.encode}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{LzLua|mw.uri.decode}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr do sprawdzenia - wymagany. | 2 = {{Code|encode}} | _2 = Gdy jest sprawdzana tylko obecność znaku {{Code|%}}. | 3 = {{Code|encode_real}} | _3 = gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/IsEncodedHtml/}}. == {{Code|p.EncodeHtml}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|b=tak}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr do transformacji kodowania. | 2 = {{Code|encode}} i {{Code|encode_real}} | _2 = te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 3 = {{Code|czy_nie_odstepy}} | _3 = to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHtml/}}. == {{Code|p.DecodeHtml}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{LzLua|mw.uri.decode}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr do odkodowania. | 2 = {{Code|spacje}} | _2 = Gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{LzLua|mw.uri.decode}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{LzLua|mw.uri.encode}}. | 3 = {{Code|encode}} i {{Code|encode_real}} | _3 = te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 4 = {{Code|czy_nie_odstepy}} | _4 = Gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHtml/}}. == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|znacznik}} | _1 = Atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody, o odpowiednim formacie, {{Strong|HTML}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml/}}. == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|value}} | _1 = Parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak/}}. == {{Code|p["NagłówekStronyAdresu"]}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_nie_dolne_myslniki}} | _2 = Gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników. | 3 = {{Code|tabela_nazw_adresu}} |_3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NagłówekStronyAdresu/}}. == {{Code|p["ParametryStronyAdresu"]}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} |_3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryStronyAdresu/}}. == {{Code|p["NazwaStronyAdresu"]}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} | _3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyAdresu/}}. == {{Code|p["NazwaStronyZParametrówStronyAdresu"]}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|parametry}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyZParametrówStronyAdresu/}}. == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. | 3 = {{Code|tabela_nazw_adresu}} | _3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PoprawAdresNagłówkaOrazParametrówStronyAdresu/}}. == {{Code|p.URLStrona}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/URLStrona/}}. == {{Code|p["UrlBezProtokołu"]}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie z opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UrlBezProtokołu/}}. == {{Code|p.DecodeKoduHTMLZnaku}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} na odpowiednie znaki. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeKoduHTMLZnaku/}}. == {{Code|p.ZamianaEncodeTekst}} == Adres strony dekoduje funkcją: {{LzLua|mw.uri.decode}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{LzLua|w.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeTekst/}}. == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - zawartość, na którą działamy, * {{Code|wzor}} - części do podziałania tą funkcją, * {{Code|funkcja}} - funkcja, którą działamy na te części. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeNaPodstawieWzoruTekstu/}}. == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do potrzelenia na trzy części. Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/StronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.TworzenieAdresuHtml}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieAdresuHtml/}}. == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieStronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.EncodeParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.EncodeParametryURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryURL/}}. == {{Code|p.EncodeZaawansowanyParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{LzLua|mw.uri.decode}}, a po nim {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryURL/}}. == {{Code|p.EncodeParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryHtml/}}. == {{Code|p.EncodeZaawansowanyParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, a przed nim wywoływana jest {{LzLua|mw.uri.decode}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryHtml/}}. == {{Code|p.EncodeHashKoduHtmlTekstu}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHashKoduHtmlTekstu/}}. == {{Code|p.DecodeHashKoduHtmlTekstu}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych zamian kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHashKoduHtmlTekstu/}}. == {{Code|p.EncodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeTempHashKoduHtmlTekstu/}}. == {{Code|p.DecodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeTempHashKoduHtmlTekstu/}}. == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"]|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresDomniemanieBezProtokolarnyEncodeURL/}}. == {{Code|p.UriEncode}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UriEncode/}}. == {{Code|p.EncodePodstawoweHtmlTekstu}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodePodstawoweHtmlTekstu/}}. == {{Code|p.EncodeElementyAdresuStrony}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{LzLua|mw.uri.decode}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry funkcji: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeElementyAdresuStrony/}}. == {{Code|p.AdresProjektuEncodeHtml}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{LzLua|mw.uri.decode}}, a na końcu {{LzLua|mw.uri.encode}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu modułu, * {{Code|z_kodowaniem}} - czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresProjektuEncodeHtml/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gh4fqwh5s3ftgar58bqlz6wan8ms3pa 555626 555625 2026-09-11T04:34:39Z Persino 2851 555626 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} i zamieniania ich na odpowiednie znaki, zamieniania znaków na ich kody dziesiętne, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łączenie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p.KodowanieOmijanieFunkcyjne}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub, jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym, który w takim razie jest rozpatrywany. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|html}} | _1 = Ciąg do przetworzenia, w częściach bez parametrów omijanych. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodowanieOmijanieFunkcyjne/}}. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki, to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NS|l=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKlasyZnakowejDoKoduHtmlCiągu/}}. == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"]}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany kodów {{Strong|HTML}}, dziesiętnych i szesnastkowych, na znaki. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKoduHtmlDoZnakuCiągu/}}. == {{Code|p.ZnakiSpecjalneTaguNowiki}} == Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wyświetlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje, do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków, z zestawu znaków specjalnych wskazanych w funkcji, występujących w tagach języka '''HTML''' do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneTaguNowiki/}}. == {{Code|p.ZnakiSpecjalneWikiLinku}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneWikiLinku/}}. == {{Code|p.EncodeSpecjalneZnakiHtml}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu, | 2 = {{Code|normalnie}}| _2 = Czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|html}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}, | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.EncodeZnakProloguList}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z podanego zestawu znaków pierwszych znaków listy, mechanizmu {{Strong|MediaWiki}}, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZnakProloguList/}}. == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|normalnie}} | _2 = czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryPrzypisaniaZnakowegoEncodeHtml/}}. == {{Code|p.PrzypisanieZnakoweEncodeHtml}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków przypisania {{Code|{{=}}}} do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PrzypisanieZnakoweEncodeHtml/}}. == {{Code|p.ZamianaDwukropkaNaKodHtml}} == Zamienia dwukropki na kody dziesiętne {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = zmienna, pod którym wyszukuje się tekst do zamiany ze znaku dwukropka do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaDwukropkaNaKodHtml/}}. == {{Code|p.KodHTMLZnaku}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} | _1 = zmienna, pod którym jesKodHTMLZnakut znak do zamiany na kod dziesiętny {{Strong|HTML}}. | 2 = {{Code|2}} | _2 = czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodHTMLZnaku/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodHTMLZnaku}}. == {{Code|p["KodyHTMLZnakówWikiCiągu"]}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} | _1 = Ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8. | 2 = {{Code|2}} | _2 = Czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodyHTMLZnakówWikiCiągu/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodyHTMLZnakówWikiCiągu}}. == {{Code|p.EncodeId}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: {{OpisParametrów | 1 = {{Code|id}} | _1 = Ciąg do przeinaczenia. | 2 = {{Code|bez_transformacji}} | _2 = Gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr z ciągiem znakowym do operacji. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UsuwanieSpecjalnychNieschematycznychSymboli/}}. == {{Code|p.EncodeWiki}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"]|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, dalej zaraz funkcja {{LzLua|mw.text.encode}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy zakodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeWiki/}}. == {{Code|p.DecodeWiki}} == Funkcja {{LzLua|mw.text.decode}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy odkodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeWiki/}}. == {{Code|p.IsEncodedHtml}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{LzLua|mw.uri.encode}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{LzLua|mw.uri.decode}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr do sprawdzenia - wymagany. | 2 = {{Code|encode}} | _2 = Gdy jest sprawdzana tylko obecność znaku {{Code|%}}. | 3 = {{Code|encode_real}} | _3 = gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/IsEncodedHtml/}}. == {{Code|p.EncodeHtml}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|b=tak}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr do transformacji kodowania. | 2 = {{Code|encode}} i {{Code|encode_real}} | _2 = te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 3 = {{Code|czy_nie_odstepy}} | _3 = to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHtml/}}. == {{Code|p.DecodeHtml}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{LzLua|mw.uri.decode}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr do odkodowania. | 2 = {{Code|spacje}} | _2 = Gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{LzLua|mw.uri.decode}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{LzLua|mw.uri.encode}}. | 3 = {{Code|encode}} i {{Code|encode_real}} | _3 = te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 4 = {{Code|czy_nie_odstepy}} | _4 = Gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHtml/}}. == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|znacznik}} | _1 = Atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody, o odpowiednim formacie, {{Strong|HTML}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml/}}. == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|value}} | _1 = Parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak/}}. == {{Code|p["NagłówekStronyAdresu"]}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_nie_dolne_myslniki}} | _2 = Gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników. | 3 = {{Code|tabela_nazw_adresu}} |_3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NagłówekStronyAdresu/}}. == {{Code|p["ParametryStronyAdresu"]}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} |_3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryStronyAdresu/}}. == {{Code|p["NazwaStronyAdresu"]}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} | _3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyAdresu/}}. == {{Code|p["NazwaStronyZParametrówStronyAdresu"]}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|parametry}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyZParametrówStronyAdresu/}}. == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. | 3 = {{Code|tabela_nazw_adresu}} | _3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PoprawAdresNagłówkaOrazParametrówStronyAdresu/}}. == {{Code|p.URLStrona}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|url}} | _1 = Adres strony. | 2 = {{Code|2}} lub {{Code|ukośnik}} | _2 = Czy do nazwy strony ma wliczać ukośnik. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/URLStrona/}}. == {{Code|p["UrlBezProtokołu"]}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|url}} | _1 = adres strony, ewentualnie z opcjonalnym protokołem. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UrlBezProtokołu/}}. == {{Code|p.DecodeKoduHTMLZnaku}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do zamienienia z dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} na odpowiednie znaki. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeKoduHTMLZnaku/}}. == {{Code|p.ZamianaEncodeTekst}} == Adres strony dekoduje funkcją: {{LzLua|mw.uri.decode}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{LzLua|w.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeTekst/}}. == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zawartość, na którą działamy. | 2 = {{Code|wzor}} | _2 = Części do podziałania tą funkcją. | 3 = {{Code|funkcja}} | _3 = Funkcja, którą działamy na te części. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeNaPodstawieWzoruTekstu/}}. == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Adres do potrzelenia na trzy części. }} Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/StronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.TworzenieAdresuHtml}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} | _1 = Normalny adres strony, bez parametrów i nagłówka, | 2 = {{Code|parametry}} | _2 = Parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, | 3 = {{Code|nagłówek}} | _3 = Nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, }} Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieAdresuHtml/}}. == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Pełny adres do przetworzenia. | 2 = {{Code|funkcja_strona}} | _2 = Funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka. | 3 = {{Code|funkcja_parametry}} | _3 = Funkcja, którą działamy na parametry adresu strony. | 4 = {{Code|funkcja_naglowek}} | _4 = Funkcja, którą działamy na nagłówek strony adresu. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieStronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.EncodeParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.EncodeParametryURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: *{{OpisParametrów | 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem. | 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. | 3 = {{Code|w_adresie}} | _3 = Czy rozpatrywać cały adres, a nie tylko parametry. | 4 = {{Code|funkcja_strona}} | _4 = Funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka. | 5 = {{Code|funkcja_naglowek}} | _5 = funkcja, którą działamy na nagłówek. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryURL/}}. == {{Code|p.EncodeZaawansowanyParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{LzLua|mw.uri.decode}}, a po nim {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem. | 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. | 3 = {{Code|w_adresie}} | _3 = Czy rozpatrywać cały adres, a nie tylko parametry. | 4 = {{Code|funkcja_strona}} | _4 = Funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka. | 5 = {{Code|funkcja_naglowek}} | _5 = funkcja, którą działamy na nagłówek. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryURL/}}. == {{Code|p.EncodeParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem. | 2 = {{Code|w_adresie}} | _2 = Czy rozpatrywać cały adres, a nie tylko parametry. | 3 = {{Code|funkcja_strona}} | _3 = Funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka. | 4 = {{Code|funkcja_naglowek}} | _4 = Funkcja, którą działamy na nagłówek. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryHtml/}}. == {{Code|p.EncodeZaawansowanyParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, a przed nim wywoływana jest {{LzLua|mw.uri.decode}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem. | 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. | 3 = {{Code|w_adresie}} | _3 = Czy rozpatrywać cały adres, a nie tylko parametry. | 4 = {{Code|funkcja_strona}} | _4 = funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka. | 5 = {{Code|funkcja_naglowek}} | _5 = funkcja, którą działamy na nagłówek. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryHtml/}}. == {{Code|p.EncodeHashKoduHtmlTekstu}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHashKoduHtmlTekstu/}}. == {{Code|p.DecodeHashKoduHtmlTekstu}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych zamian kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHashKoduHtmlTekstu/}}. == {{Code|p.EncodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeTempHashKoduHtmlTekstu/}}. == {{Code|p.DecodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia i po rozdzieleniu na trzy części. | 2 = {{Code|ile1}} | _2 = Ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej. | 3 = {{Code|ile2}} | _3 = Ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeTempHashKoduHtmlTekstu/}}. == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"]|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Adres do zakodowania. | 2 = {{Code|protokolarny}} | _2 = Czy ma rozkładać adres na nazwę strony i protokół. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresDomniemanieBezProtokolarnyEncodeURL/}}. == {{Code|p.UriEncode}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: {{OpisParametrów | 1 = {{Code|html}} | _1 = Adres z protokołem strony. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UriEncode/}}. == {{Code|p.EncodePodstawoweHtmlTekstu}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|elementy_adresu_strony}} | _1 = Funkcja do podstawowego kodowania adresu. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodePodstawoweHtmlTekstu/}}. == {{Code|p.EncodeElementyAdresuStrony}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{LzLua|mw.uri.decode}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|elementy_adresu_strony}} | _1 = Element adresu strony. | 2 = {{Code|czy_parametry_strony}} | _2 = Czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry. | 3 = {{Code|z_kodowaniem}} | _3 = czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeElementyAdresuStrony/}}. == {{Code|p.AdresProjektuEncodeHtml}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{LzLua|mw.uri.decode}}, a na końcu {{LzLua|mw.uri.encode}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. | 3 = {{Code|protokolarny}} | _3 = czy uważać przy kodowaniu na protokoły pełnych adresów stron. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|html}} | _1 = Adres do kodowania. | 2 = {{Code|encode}} | _2 = Czy kodować. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresProjektuEncodeHtml/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> q64kx84g2ip4mqzc7o572wie8wk6jw3 555627 555626 2026-09-11T04:35:42Z Persino 2851 /* {{Code|p.DecodeHashKoduHtmlTekstu}} */ 555627 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Html}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Moduł zawiera funkcje do posługiwania się dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} i zamieniania ich na odpowiednie znaki, zamieniania znaków na ich kody dziesiętne, i odwrotnie. Kodowaniem i dekodowaniem {{Strong|URL}} adresów internetowych, parametrów i nagłówków. Rozdzielaniem pełnych adresów na nazwę strony, zapytanie i nagłówek, odpowiednich ich kodowaniem, a potem ich łączenie z powrotem do innej wartości zwykle niż wcześniej tego samego ciągu. == {{Code|p.KodowanieOmijanieFunkcyjne}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub, jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym, który w takim razie jest rozpatrywany. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|html}} | _1 = Ciąg do przetworzenia, w częściach bez parametrów omijanych. | 2 = {{Code|normalnie}} | _2 = Czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi. | 3 = {{Code|wzor}} | _3 = Wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany. | 4 = {{Code|funkcja}} | _4 = Funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodowanieOmijanieFunkcyjne/}}. == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki, to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>|[]()+-*?.^$%'</nowiki>}}. Jest ona potrzebna do zamiany nazw stron nazw wewnętrznych na {{NS|l=tak}}, a w nich te znaki na kody {{Code|HTML}}, by wykorzystać później to w funkcji: {{Code|mw.title.makeTitle}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKlasyZnakowejDoKoduHtmlCiągu/}}. == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"]}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany kodów {{Strong|HTML}}, dziesiętnych i szesnastkowych, na znaki. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TransformacjaKoduHtmlDoZnakuCiągu/}}. == {{Code|p.ZnakiSpecjalneTaguNowiki}} == Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wyświetlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki>}}, jeżeli to jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje, do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków, z zestawu znaków specjalnych wskazanych w funkcji, występujących w tagach języka '''HTML''' do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneTaguNowiki/}}. == {{Code|p.ZnakiSpecjalneWikiLinku}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZnakiSpecjalneWikiLinku/}}. == {{Code|p.EncodeSpecjalneZnakiHtml}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu, | 2 = {{Code|normalnie}}| _2 = Czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|html}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}, | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.EncodeZnakProloguList}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z podanego zestawu znaków pierwszych znaków listy, mechanizmu {{Strong|MediaWiki}}, do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZnakProloguList/}}. == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|normalnie}} | _2 = czy ma omijać kody {{Strong|HTML}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany z zestawu znaków specjalnych, wskazanych w funkcji, do dziesiętnego kodu {{Strong|HTML}}. | 2 = {{Code|normalnie}} | _2 = Czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wartości logicznej {{Code|false}}, wtedy liczy się jej wersja parametrowa funkcji. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryPrzypisaniaZnakowegoEncodeHtml/}}. == {{Code|p.PrzypisanieZnakoweEncodeHtml}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zmienna, pod którym wyszukuje się tekst do zamiany znaków przypisania {{Code|{{=}}}} do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PrzypisanieZnakoweEncodeHtml/}}. == {{Code|p.ZamianaDwukropkaNaKodHtml}} == Zamienia dwukropki na kody dziesiętne {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = zmienna, pod którym wyszukuje się tekst do zamiany ze znaku dwukropka do dziesiętnego kodu {{Strong|HTML}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaDwukropkaNaKodHtml/}}. == {{Code|p.KodHTMLZnaku}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} | _1 = zmienna, pod którym jesKodHTMLZnakut znak do zamiany na kod dziesiętny {{Strong|HTML}}. | 2 = {{Code|2}} | _2 = czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodHTMLZnaku/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodHTMLZnaku}}. == {{Code|p["KodyHTMLZnakówWikiCiągu"]}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} | _1 = Ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8. | 2 = {{Code|2}} | _2 = Czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. }} Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/KodyHTMLZnakówWikiCiągu/}}. === Przykład kodu na stronie szablonu z przykładami na stronie ich opisów === Popatrz na wyniki szablonu: {{s|KodyHTMLZnakówWikiCiągu}}. == {{Code|p.EncodeId}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: {{OpisParametrów | 1 = {{Code|id}} | _1 = Ciąg do przeinaczenia. | 2 = {{Code|bez_transformacji}} | _2 = Gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml|p=Html}}}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeSpecjalneZnakiHtml/}}. == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr z ciągiem znakowym do operacji. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UsuwanieSpecjalnychNieschematycznychSymboli/}}. == {{Code|p.EncodeWiki}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"]|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, dalej zaraz funkcja {{LzLua|mw.text.encode}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy zakodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeWiki/}}. == {{Code|p.DecodeWiki}} == Funkcja {{LzLua|mw.text.decode}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Tekst, który chcemy odkodować, | 2 = {{Code|czy_nie_odstepy}} | _2 = Czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeWiki/}}. == {{Code|p.IsEncodedHtml}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{LzLua|mw.uri.encode}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{LzLua|mw.uri.decode}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr do sprawdzenia - wymagany. | 2 = {{Code|encode}} | _2 = Gdy jest sprawdzana tylko obecność znaku {{Code|%}}. | 3 = {{Code|encode_real}} | _3 = gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/IsEncodedHtml/}}. == {{Code|p.EncodeHtml}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|b=tak}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr do transformacji kodowania. | 2 = {{Code|encode}} i {{Code|encode_real}} | _2 = te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 3 = {{Code|czy_nie_odstepy}} | _3 = to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHtml/}}. == {{Code|p.DecodeHtml}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{LzLua|mw.uri.decode}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Parametr do odkodowania. | 2 = {{Code|spacje}} | _2 = Gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{LzLua|mw.uri.decode}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{LzLua|mw.uri.encode}}. | 3 = {{Code|encode}} i {{Code|encode_real}} | _3 = te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml|p=Html}}}}, | 4 = {{Code|czy_nie_odstepy}} | _4 = Gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki|p=Html}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHtml/}}. == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|znacznik}} | _1 = Atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody, o odpowiednim formacie, {{Strong|HTML}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml/}}. == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|value}} | _1 = Parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak/}}. == {{Code|p["NagłówekStronyAdresu"]}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_nie_dolne_myslniki}} | _2 = Gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników. | 3 = {{Code|tabela_nazw_adresu}} |_3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NagłówekStronyAdresu/}}. == {{Code|p["ParametryStronyAdresu"]}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} |_3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ParametryStronyAdresu/}}. == {{Code|p["NazwaStronyAdresu"]}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony. | 3 = {{Code|tabela_nazw_adresu}} | _3 = Tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyAdresu/}}. == {{Code|p["NazwaStronyZParametrówStronyAdresu"]}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|parametry}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/NazwaStronyZParametrówStronyAdresu/}}. == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu. | 2 = {{Code|czy_naprawiaj}} | _2 = Parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. | 3 = {{Code|tabela_nazw_adresu}} | _3 = tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"]|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"]|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} | _1 = Nazwa jednostki (strony), tzn. jego adres. | 2 = {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} | _2 = Znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/PoprawAdresNagłówkaOrazParametrówStronyAdresu/}}. == {{Code|p.URLStrona}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|url}} | _1 = Adres strony. | 2 = {{Code|2}} lub {{Code|ukośnik}} | _2 = Czy do nazwy strony ma wliczać ukośnik. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/URLStrona/}}. == {{Code|p["UrlBezProtokołu"]}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|url}} | _1 = adres strony, ewentualnie z opcjonalnym protokołem. }} Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UrlBezProtokołu/}}. == {{Code|p.DecodeKoduHTMLZnaku}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do zamienienia z dziesiętnymi, szesnastkowymi i literowymi kodami {{Strong|HTML}} na odpowiednie znaki. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeKoduHTMLZnaku/}}. == {{Code|p.ZamianaEncodeTekst}} == Adres strony dekoduje funkcją: {{LzLua|mw.uri.decode}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{LzLua|w.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeTekst/}}. == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Zawartość, na którą działamy. | 2 = {{Code|wzor}} | _2 = Części do podziałania tą funkcją. | 3 = {{Code|funkcja}} | _3 = Funkcja, którą działamy na te części. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/ZamianaEncodeNaPodstawieWzoruTekstu/}}. == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Adres do potrzelenia na trzy części. }} Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/StronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.TworzenieAdresuHtml}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} | _1 = Normalny adres strony, bez parametrów i nagłówka, | 2 = {{Code|parametry}} | _2 = Parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, | 3 = {{Code|nagłówek}} | _3 = Nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, }} Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieAdresuHtml/}}. == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Pełny adres do przetworzenia. | 2 = {{Code|funkcja_strona}} | _2 = Funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka. | 3 = {{Code|funkcja_parametry}} | _3 = Funkcja, którą działamy na parametry adresu strony. | 4 = {{Code|funkcja_naglowek}} | _4 = Funkcja, którą działamy na nagłówek strony adresu. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/TworzenieStronaParametryIdentyfikacjaAdresuHtml/}}. == {{Code|p.EncodeParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.EncodeParametryURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: *{{OpisParametrów | 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem. | 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. | 3 = {{Code|w_adresie}} | _3 = Czy rozpatrywać cały adres, a nie tylko parametry. | 4 = {{Code|funkcja_strona}} | _4 = Funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka. | 5 = {{Code|funkcja_naglowek}} | _5 = funkcja, którą działamy na nagłówek. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryURL/}}. == {{Code|p.EncodeZaawansowanyParametryURL}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{LzLua|mw.uri.decode}}, a po nim {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryURL(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem. | 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. | 3 = {{Code|w_adresie}} | _3 = Czy rozpatrywać cały adres, a nie tylko parametry. | 4 = {{Code|funkcja_strona}} | _4 = Funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka. | 5 = {{Code|funkcja_naglowek}} | _5 = funkcja, którą działamy na nagłówek. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryURL/}}. == {{Code|p.EncodeParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem. | 2 = {{Code|w_adresie}} | _2 = Czy rozpatrywać cały adres, a nie tylko parametry. | 3 = {{Code|funkcja_strona}} | _3 = Funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka. | 4 = {{Code|funkcja_naglowek}} | _4 = Funkcja, którą działamy na nagłówek. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeParametryHtml/}}. == {{Code|p.EncodeZaawansowanyParametryHtml}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, a przed nim wywoływana jest {{LzLua|mw.uri.decode}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Pełny adres strony z parametrami i nagłówkiem. | 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. | 3 = {{Code|w_adresie}} | _3 = Czy rozpatrywać cały adres, a nie tylko parametry. | 4 = {{Code|funkcja_strona}} | _4 = funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka. | 5 = {{Code|funkcja_naglowek}} | _5 = funkcja, którą działamy na nagłówek. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeZaawansowanyParametryHtml/}}. == {{Code|p.EncodeHashKoduHtmlTekstu}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeHashKoduHtmlTekstu/}}. == {{Code|p.DecodeHashKoduHtmlTekstu}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia, | 2 = {{Code|ile}} | _2 = {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych zamian kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeHashKoduHtmlTekstu/}}. == {{Code|p.EncodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeTempHashKoduHtmlTekstu/}}. == {{Code|p.DecodeTempHashKoduHtmlTekstu}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: {{OpisParametrów | 1 = {{Code|tekst}} | _1 = Tekst do przetworzenia i po rozdzieleniu na trzy części. | 2 = {{Code|ile1}} | _2 = Ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej. | 3 = {{Code|ile2}} | _3 = Ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/DecodeTempHashKoduHtmlTekstu/}}. == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"]|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|adres}} | _1 = Adres do zakodowania. | 2 = {{Code|protokolarny}} | _2 = Czy ma rozkładać adres na nazwę strony i protokół. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresDomniemanieBezProtokolarnyEncodeURL/}}. == {{Code|p.UriEncode}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: {{OpisParametrów | 1 = {{Code|html}} | _1 = Adres z protokołem strony. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/UriEncode/}}. == {{Code|p.EncodePodstawoweHtmlTekstu}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|elementy_adresu_strony}} | _1 = Funkcja do podstawowego kodowania adresu. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodePodstawoweHtmlTekstu/}}. == {{Code|p.EncodeElementyAdresuStrony}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{LzLua|mw.uri.decode}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{LzLua|mw.uri.encode}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|elementy_adresu_strony}} | _1 = Element adresu strony. | 2 = {{Code|czy_parametry_strony}} | _2 = Czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry. | 3 = {{Code|z_kodowaniem}} | _3 = czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. }} === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/EncodeElementyAdresuStrony/}}. == {{Code|p.AdresProjektuEncodeHtml}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{LzLua|mw.uri.decode}}, a na końcu {{LzLua|mw.uri.encode}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki funkcji tablicy transportu modułu. | 2 = {{Code|z_kodowaniem}} | _2 = Czy ostateczny tekst przetworzony przed nim ma być podany do zakodowania. | 3 = {{Code|protokolarny}} | _3 = czy uważać przy kodowaniu na protokoły pełnych adresów stron. }} Parametry tablicy ramki {{Code|frame}} funkcji tabeli transportu modułu: {{OpisParametrów | 1 = {{Code|html}} | _1 = Adres do kodowania. | 2 = {{Code|encode}} | _2 = Czy kodować. }} Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. === Przykład kodu na stronie modułów z przykładami na stronie ich opisów === Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Html/AdresProjektuEncodeHtml/}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9jt9tgik63muc21q1fp0ke4029y9w9m Wikibooks:Moduły/StronicowyParser/SzablonyTekstu 4 63669 555459 554820 2026-09-10T15:09:05Z Persino 2851 /* {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} */ 555459 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} - parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, * {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} - rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, * {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, * {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} - obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, * {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, * {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, * {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów modułu {{m|Szablonowe}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}, * {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} - obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, * {{Code|kod}} {{LinkPatrz|Pobierz: kod}} - numer danego obiektu typu {{LinkPatrz|Pobierz}}, * {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} - nazwa danego obiektu {{LinkPatrz|Śródtekst}}, * {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, * {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}}. Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}. Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: * {{Code|obiekt}} - jak w: {{LinkPatrz|Pobierz: obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|Pobierz: kod}}, * {{Code|pozycja}} - dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} - czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} {{Patrz|szablon}} - treści obiektu typu: {{LinkPatrz|Pobierz}}, * {{Code|obiekt}} - jak w: {{LinkPatrz|Pobierz: obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|Pobierz: kod}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}. Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} - jak w: {{LinkPatrz|szablon}}, * {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|kod}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}. Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, * {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} - iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, do szybkiego zakończeniu funkcji, gdy by takich elementów nie było. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}, dla dwóch tego typu obiektów. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}. Funkcja do sprawdzania, czy są dwa tego typu szablony, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mo9jzj1k9uskokwoeus8hwi91nvv6ld 555460 555459 2026-09-10T15:30:13Z Persino 2851 /* {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} */ 555460 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} - parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, * {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} - rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, * {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, * {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} - obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, * {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, * {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, * {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów modułu {{m|Szablonowe}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}, * {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} - obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, * {{Code|kod}} {{LinkPatrz|Pobierz: kod}} - numer danego obiektu typu {{LinkPatrz|Pobierz}}, * {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} - nazwa danego obiektu {{LinkPatrz|Śródtekst}}, * {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, * {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}}. Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}. Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: * {{Code|obiekt}} - jak w: {{LinkPatrz|Pobierz: obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|Pobierz: kod}}, * {{Code|pozycja}} - dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} - czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} {{Patrz|szablon}} - treści obiektu typu: {{LinkPatrz|Pobierz}}, * {{Code|obiekt}} - jak w: {{LinkPatrz|Pobierz: obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|Pobierz: kod}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}. Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} - jak w: {{LinkPatrz|szablon}}, * {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|kod}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}. Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, * {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} - iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> cdzawmo9pw4am8w2tgqx7fytalvdtt9 555461 555460 2026-09-10T15:30:45Z Persino 2851 /* {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} */ 555461 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} - parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, * {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} - rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, * {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, * {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} - obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, * {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, * {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, * {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów modułu {{m|Szablonowe}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}, * {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} - obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, * {{Code|kod}} {{LinkPatrz|Pobierz: kod}} - numer danego obiektu typu {{LinkPatrz|Pobierz}}, * {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} - nazwa danego obiektu {{LinkPatrz|Śródtekst}}, * {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, * {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}}. Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}. Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: * {{Code|obiekt}} - jak w: {{LinkPatrz|Pobierz: obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|Pobierz: kod}}, * {{Code|pozycja}} - dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} - czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} {{Patrz|szablon}} - treści obiektu typu: {{LinkPatrz|Pobierz}}, * {{Code|obiekt}} - jak w: {{LinkPatrz|Pobierz: obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|Pobierz: kod}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}. Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} - jak w: {{LinkPatrz|szablon}}, * {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|kod}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}. Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, * {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} - iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gr01f5qly54tak9sa5l2i1slsdr0a5d 555462 555461 2026-09-10T15:32:09Z Persino 2851 /* {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} */ 555462 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} - parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, * {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} - rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, * {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, * {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} - obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, * {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, * {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, * {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów modułu {{m|Szablonowe}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}, * {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} - obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, * {{Code|kod}} {{LinkPatrz|Pobierz: kod}} - numer danego obiektu typu {{LinkPatrz|Pobierz}}, * {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} - nazwa danego obiektu {{LinkPatrz|Śródtekst}}, * {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, * {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}}. Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}. Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: * {{Code|obiekt}} - jak w: {{LinkPatrz|Pobierz: obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|Pobierz: kod}}, * {{Code|pozycja}} - dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} - czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} {{Patrz|szablon}} - treści obiektu typu: {{LinkPatrz|Pobierz}}, * {{Code|obiekt}} - jak w: {{LinkPatrz|Pobierz: obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|Pobierz: kod}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}. Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} - jak w: {{LinkPatrz|szablon}}, * {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|kod}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}. Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, * {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} - iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jjbi93zg77br3q2mcm5qrot0hejmk9n 555469 555462 2026-09-10T15:47:08Z Persino 2851 /* {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} */ 555469 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} - parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, * {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} - rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, * {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} - tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, * {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} - obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, * {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, * {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} - nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, * {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} - tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica bazy kodów modułu {{m|Szablonowe}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} - {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}, * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}, * {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} - obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, * {{Code|kod}} {{LinkPatrz|Pobierz: kod}} - numer danego obiektu typu {{LinkPatrz|Pobierz}}, * {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} - nazwa danego obiektu {{LinkPatrz|Śródtekst}}, * {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} - unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, * {{Code|czy_artykul_korzystany}} - jak w: {{LinkPatrz|czy_artykul_korzystany}}. Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tablica_zmiennych2}} - jak w: {{LinkPatrz|tablica_zmiennych2}}. Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: * {{Code|obiekt}} - jak w: {{LinkPatrz|Pobierz: obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|Pobierz: kod}}, * {{Code|pozycja}} - dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} - nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} - czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} {{Patrz|szablon}} - treści obiektu typu: {{LinkPatrz|Pobierz}}, * {{Code|obiekt}} - jak w: {{LinkPatrz|Pobierz: obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|Pobierz: kod}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}. Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: * {{Code|szablon}} - jak w: {{LinkPatrz|szablon}}, * {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt}}, * {{Code|kod}} - jak w: {{LinkPatrz|kod}}, * {{Code|nazwa_modulu_aktualna_czy_biezaca}} - jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, * {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, * {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, * {{Code|tablica_zmiennych}} - jak w: {{LinkPatrz|tablica_zmiennych}}. Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ettpvbhdtd5hj27vuuu5yepu1aobe67 555481 555469 2026-09-10T16:13:42Z Persino 2851 555481 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7yl4uetle5owz6thw7mb96cwdw8xmmm 555522 555481 2026-09-10T19:10:35Z Persino 2851 555522 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego jak tablica zawierająca następne tablice, gdy tam jakiś ekement się powjawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych: {{Code|name}}, w tych mniejszych mieszczą się tabele tabela, ktore pierwszym elementem jest uchwyt jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ---- Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> j8c4zfdfk5ll5vnnud6xr9nptz1md9m 555523 555522 2026-09-10T19:12:28Z Persino 2851 555523 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego jak tablica zawierająca następne tablice, gdy tam jakiś ekement się powjawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ---- Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> saz3nliki8y1qkoadxanne8a0fuft2m 555524 555523 2026-09-10T19:15:50Z Persino 2851 555524 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego jak tablica zawierająca następne tablice, gdy tam jakiś ekement się powjawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ---- Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> sgky1d8ffoopys5qf62yrgvgwtau809 555525 555524 2026-09-10T19:17:38Z Persino 2851 555525 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ---- Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> b8lli0pmfufv7gd252xo9m8b7bxqrvy 555526 555525 2026-09-10T19:29:11Z Persino 2851 555526 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiany przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, ---- Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ckmxg14y94nx929cjbc3asxu57paua3 555527 555526 2026-09-10T19:45:48Z Persino 2851 555527 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiany przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzSródtest}}. ---- Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> s16wv5m504py2jmtm3rbeat09gy4v36 555528 555527 2026-09-10T19:46:20Z Persino 2851 555528 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiany przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzSródtest}}. ---- Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> oqvptbybga22qmvmphs7ezztlextwan 555529 555528 2026-09-10T19:47:21Z Persino 2851 555529 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiany przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtest}}. ---- Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> np8guelxzl0478ncrw9r89hlxn0yjuc 555530 555529 2026-09-10T19:47:49Z Persino 2851 555530 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiany przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. ---- Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fc3yrz4crw2qcmycjnu4ocmiu9x9kh0 555531 555530 2026-09-10T19:48:57Z Persino 2851 555531 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiana przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. ---- Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dw8ux0q7l7zyl9eiwijqeixxur5vxdu 555532 555531 2026-09-10T20:14:55Z Persino 2851 555532 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ; Strony niebieżące - dołączone{{dk}} Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Tą funkcję używamy do zbierania informacji o inne stronie, dołączonej do aktualnej, w wyniku uruchomienia szablonu linku lub pobierania. ; Strony bieżące korzystane - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}{{dk}} Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiana przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy pobierania (szablony typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}) w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. ---- ; Inne{{dk}} Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4ul4czgvxqfhdp12m01r9q695ylwnu3 555533 555532 2026-09-10T20:19:35Z Persino 2851 555533 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. ; Zbieranie elementów typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, na stronie bieżącej, jak i dołączonej{{dk}} '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ; Strony niebieżące - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}} na stronie bieżącej, które odwołują się właśnie do tej niebieżącej{{dk}} Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Tą funkcję używamy do zbierania informacji o inne stronie, dołączonej do aktualnej, w wyniku uruchomienia szablonu linku lub pobierania. ; Strony bieżące korzystane - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, które odwołują się do niej{{dk}} Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiana przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy pobierania (szablony typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}) w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. ---- ; Inne{{dk}} Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{ListaParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 86wjcam2y3spjghlw1araahj1ywj9k9 555542 555533 2026-09-10T21:33:07Z Persino 2851 555542 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. ; Zbieranie elementów typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, na stronie bieżącej, jak i dołączonej{{dk}} '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ; Strony niebieżące - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}} na stronie bieżącej, które odwołują się właśnie do tej niebieżącej{{dk}} Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Tą funkcję używamy do zbierania informacji o inne stronie, dołączonej do aktualnej, w wyniku uruchomienia szablonu linku lub pobierania. ; Strony bieżące korzystane - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, które odwołują się do niej{{dk}} Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiana przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy pobierania (szablony typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}) w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. ---- ; Inne{{dk}} Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, za odpowiednią treści z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7jpi9zwrygkq0dnbvji43v3mzs5a8xj 555545 555542 2026-09-10T22:33:55Z Persino 2851 /* {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} */ 555545 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. ; Zbieranie elementów typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, na stronie bieżącej, jak i dołączonej{{dk}} '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ; Strony niebieżące - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}} na stronie bieżącej, które odwołują się właśnie do tej niebieżącej{{dk}} Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Tą funkcję używamy do zbierania informacji o inne stronie, dołączonej do aktualnej, w wyniku uruchomienia szablonu linku lub pobierania. ; Strony bieżące korzystane - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, które odwołują się do niej{{dk}} Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiana przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy pobierania (szablony typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}) w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. ---- ; Inne{{dk}} Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, odpowiednimi treściami z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na bieżącej stronie, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na stronie niebieżącej, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}, który zamienia ten obiekt: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, pobierania na odpowiedni wikikod do działania z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> d39u5g1k8ws7vaiqfnbtdnnxt474xqw 555546 555545 2026-09-10T22:38:13Z Persino 2851 /* {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} */ 555546 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. ; Zbieranie elementów typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, na stronie bieżącej, jak i dołączonej{{dk}} '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ; Strony niebieżące - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}} na stronie bieżącej, które odwołują się właśnie do tej niebieżącej{{dk}} Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Tą funkcję używamy do zbierania informacji o inne stronie, dołączonej do aktualnej, w wyniku uruchomienia szablonu linku lub pobierania. ; Strony bieżące korzystane - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, które odwołują się do niej{{dk}} Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiana przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy pobierania (szablony typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}) w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. ---- ; Inne{{dk}} Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, odpowiednimi treściami z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na bieżącej stronie, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na stronie niebieżącej, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}, który zamienia ten obiekt: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, pobierania na odpowiedni wikikod do działania z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. Funkcja do swojego działania potrzebuje: {{LinkPatrz|p.ParametrTekstowySzablonuTekstu}}, który pobiera tekst z tego szablonu, i zamieniąc go typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, ale nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, właśnie na to. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 2tfsetysyd0aff14anuiw2sg85w69e5 555547 555546 2026-09-10T22:39:41Z Persino 2851 /* {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} */ 555547 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. ; Zbieranie elementów typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, na stronie bieżącej, jak i dołączonej{{dk}} '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ; Strony niebieżące - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}} na stronie bieżącej, które odwołują się właśnie do tej niebieżącej{{dk}} Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Tą funkcję używamy do zbierania informacji o inne stronie, dołączonej do aktualnej, w wyniku uruchomienia szablonu linku lub pobierania. ; Strony bieżące korzystane - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, które odwołują się do niej{{dk}} Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiana przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy pobierania (szablony typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}) w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. ---- ; Inne{{dk}} Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, odpowiednimi treściami z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na bieżącej stronie, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na stronie niebieżącej, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}, który zamienia ten obiekt: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, pobierania na odpowiedni wikikod do działania z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. Funkcja do swojego działania potrzebuje: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, który pobiera tekst z tego szablonu, i zamieniąc go typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, ale nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, właśnie na to. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4f0qve8fpup5dg90nobgqkbm7pxe2ni 555548 555547 2026-09-10T22:41:20Z Persino 2851 /* {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} */ 555548 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. ; Zbieranie elementów typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, na stronie bieżącej, jak i dołączonej{{dk}} '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|tabele szablonu tekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ; Strony niebieżące - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}} na stronie bieżącej, które odwołują się właśnie do tej niebieżącej{{dk}} Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Tą funkcję używamy do zbierania informacji o inne stronie, dołączonej do aktualnej, w wyniku uruchomienia szablonu linku lub pobierania. ; Strony bieżące korzystane - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, które odwołują się do niej{{dk}} Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiana przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy pobierania (szablony typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}) w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. ---- ; Inne{{dk}} Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|tabele szablonu tekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|tabele szablonu tekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|tabele szablonu tekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, odpowiednimi treściami z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na bieżącej stronie, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na stronie niebieżącej, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}, który zamienia ten obiekt: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, pobierania na odpowiedni wikikod do działania z szablonu tekstu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. Funkcja do swojego działania potrzebuje: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, który pobiera tekst z tego szablonu, i zamieniąc go typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, ale nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, właśnie na to. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> i55y5g6hofsljg6yzvrlxo8a1ix7gwo 555549 555548 2026-09-10T22:48:00Z Persino 2851 555549 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SzablonyTekstu}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Ten moduł służy do obsługi szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}. * Szablony typu: {{Code|Śródtekst}} {{Patrz|Śródtekst}}, to są: {{s|Śródtekst}}. ** {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} - to jest typ obiektu i jego numer szablonów typu: nie {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Szablony typu: {{Code|Pobierz}} {{Patrz|Pobierz}}, to są: {{s|PobierzŚródtekst}}. ** {{Code|Pobierz: obiekt}} {{Patrz|Pobierz: obiekt}} i {{Code|Pobierz: kod}} {{Patrz|Pobierz: kod}} - to jest typ obiektu i jego numer szablonów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}. ; Zbieranie elementów typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, na stronie bieżącej, jak i dołączonej{{dk}} '''{{ld|StronicowyParser|Stronicowy parser}}''' jak napotka szablon {{s|Śródtekst}}, to generuje tworzenie następujących tablic: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{Patrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, dla tych szablonów w artykule niekorzystanej, lub korzystanej według: {{Code|tablica_szablonu_tekstu_korzystanych}} {{Patrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, jako {{ZobaczTeż|p.DodawanieDoBazyStronySzablonuTekstu}}: <syntaxhighlight lang="lua"> if(not czy_artykul_korzystany)then if(not tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_niekorzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, {tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,}, }); else if(not tablica_zmiennych.tablica_szablonu_tekstu_korzystanych)then tablica_zmiennych.tablica_szablonu_tekstu_korzystanych={};end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_korzystanych,{ {wartosc_elementu,lista_dwuelementowa,}, {}, {{tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,},obiekt,kod,}, }); end; </syntaxhighlight> * Teb powyższy kod, to nic innego jak część definicji fukcji: {{LinkŚródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}, używaną do stawiaia tego, gdy napotkano szablony tytu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. ; Strony niebieżące - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}} na stronie bieżącej, które odwołują się właśnie do tej niebieżącej{{dk}} Drugi element wsadzanej tablicy za pomocą {{LzLua|table.insert}}, jest to nic innego, jak tablica zawierająca następne tablice, gdy tam jakiś element się pojawi, a ta operacja jest robina przez funkcję {{LinkŚródtytuł|p.UstawianiePobierz}} {{ZobaczTeż|p.UstawianiePobierz}}: <syntaxhighlight lang="lua"> local tablica_szablonu_tekstu; if(czy_artykul_korzystany)then tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_korzystanych; else tablica_szablonu_tekstu=tablica_zmiennych2.tablica_szablonu_tekstu_niekorzystanych; end; if(tablica_szablonu_tekstu)then for _,pozycja in ipairs(tablica_szablonu_tekstu)do ... local dodatkowe_elementy=pozycja[2]; ... if(not czy_tak)then local tab_numer; if(tablica_zmiennych)then tab_numer={}; for name,value in pairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)do tab_numer[name]=#tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[name]; end; end; table.insert(dodatkowe_elementy,{obiekt,kod,tab_numer}); break; </syntaxhighlight> * gdzie: tabela: {{Code|tabela_listy_danych_analizy_ksiazki2}} {{Patrz|tabela_listy_danych_analizy_ksiazki2}}, będąca podtabelą tabeli: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, to nic innego, jak zbiór tablic mniejszych dla posczególnych obiektów, tutaj nazwanych kluczami: {{Code|name}}, w tych mniejszych mieszczą się pojedyncze tabele, ktore pierwszym elementem jest uchwyt, a drugim jest sam tekst szablonu typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. * Tą funkcję używamy do zbierania informacji o inne stronie, dołączonej do aktualnej, w wyniku uruchomienia szablonu linku lub pobierania. ; Strony bieżące korzystane - zbieranie elementów szablonu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, które odwołują się do niej{{dk}} Funkcja natomiast: {{LinkŚródtytuł|p.UstawianiePobierz}}, jest uruchamiana przez funkcję: {{LinkŚródtytuł|p.UstawPobierzKorzystanie}}, dla modułu bieżącego, która zbiera odpowiednie elementy pobierania (szablony typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}) w tablicach linkowych (pobierania) {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, to są tablice, aktualnej - bieżącej, strony, ta tablica jest tworzona sposobem, ale nie w tej funkcji, ta funkcja jedynie z tego korzysta, a ten kod poniżej jest używany, gdzie indziej w kodzie {{ZobaczTeż|p.LinkowanieFinalizowaniePrac}}: <syntaxhighlight lang="lua"> if(czy_pobierz)then if(not tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane)then tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane={}; end; table.insert(tablica_zmiennych.tablica_szablonu_tekstu_linkowe_korzystane,{{nazwa_obiektu,uchwyt_obiektu,},{obiekt,kod,},}); end; </syntaxhighlight> W tej tablicy mieszczą się informację, co do poszczególnych obiektów pobierania typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jak: {{s|PobierzŚródtekst}}. ---- ; Inne{{dk}} Z tych tabel korzysta, nie tylko, szablon: {{s|Śródtekst}}, ale też i: {{s|PobierzŚródtekst}}, przy pomocy oprogramowania modułu: {{m|StronicowyParser}}, czy: {{m|StronicowyParser/}}. == {{Śródtytuł|p.ParametrTekstowySzablonuTekstu}}{{Code|p.ParametrTekstowySzablonuTekstu}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|tekst}} {{Patrz|tekst}}, {{Code|treść}} {{Patrz|treść}} lub {{Code|1}} {{Patrz|1}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametrTekstowySzablonuTekstu(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o różnych parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.SzablonTekstuBezPreProcess}}{{Code|p.SzablonTekstuBezPreProcess}} == Funkcja liczy element tablicy: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, o nazwie {{Code|bez preprocess}} {{Patrz|bez preprocess}}, i go zwraca: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.SzablonTekstuBezPreProcess(tabela_parametrow_szablonu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = parametry szablonu {{s|Śródtekst}}, o parametrach nazwanych lub nienazwanych. }} == {{Śródtytuł|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}}{{Code|p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony}} == Funkcja elementy tablicy: {{Code|tablica_zmiennych2}} {{Patrz|tablica_zmiennych2}}, przypisuje tablicy: {{Code|tablica_zmiennych}} {{Patrz|tablica_zmiennych}}, czyli do tego pierwszego dodaje elementy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, do tablicy o nazwie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a jeżeli ta tablica nie istnieje, to jest tworzona: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazySzablonuTekstuStronyKorzystanejElementyInnejStrony(tablica_zmiennych,tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, jest to tablica dla strony niekorzystanej, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, jest to tablica dla strony korzystanej, aktualnej strony, która jest wyświetlana na ekranie. }} == {{Śródtytuł|p.DodawanieDoBazyStronySzablonuTekstu}}{{Code|p.DodawanieDoBazyStronySzablonuTekstu}} == Szablon dodający elementy do tablicy bazy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, lub {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, szablonu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, tzn. do tablicy: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, jest równy wartości fałszywej, przeciwnie do: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tej samej tablicy co poprzednio. Te elementy są dodawane według następującego kodu: {{LinkZobaczTeż|p.DodawanieDoBazyStronySzablonuTekstu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodawanieDoBazyStronySzablonuTekstu(tablica_zmiennych,wartosc_elementu,lista_dwuelementowa,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}} lub {{LinkPatrz|tablica_zmiennych2}}, | 2 = {{Code|wartosc_elementu}} {{Patrz|wartosc_elementu}} | _2 = rodzaj elementu, jak: {{Code|Śródtekst}} {{Patrz|rodzaj: Śródtekst}}, dla jednego z szablonów tekstu, | 3 = {{Code|lista_dwuelementowa}} {{Patrz|lista_dwuelementowa}} | _3 = tablica elementu tablicy zbierającej dane, element posiada tylko pierwszy element, który jest uchwytem, | 4 = {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}} | _4 = obiekt i kod, szablonu typu {{s|Śródtekst}} {{LinkPatrz|Śródtekst}} w tekście zakodowanym, | 5 = {{Code|tabela_parametrow_szablonu}} | _5 = jak w: {{LinkPatrz|tabela_parametrow_szablonu}}, | 6 = {{Code|nazwa_szablonu_wywolania}} {{Patrz|nazwa_szablonu_wywolania}} | _6 = nazwa szablonu tekstu, typu, dla {{LinkPatrz|Śródtekst}}, | 7 = {{Code|modyfikatory_wywolania}} {{Patrz|modyfikatory_wywolania}} | _7 = tablica modyfikatorów uruchmienia szablonu {{LinkPatrz|Śródtekst}}, | 8 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _8 = tablica bazy kodów modułu {{m|Szablonowe}}, | 9 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _9 = tablica rozkładu na czynniki pierwsze, elementów bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 10 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _10 = {{Code|true}}, gdy artykuł jest taki sam,jak strona w przeglądarce. }} Tablica jako drugi element dodawanej tablicy w kodzie: {{LinkZobaczTeż|p.DodawanieDoBazyStronySzablonuTekstu}}, to są tam podtablice, które są tablicami składających się z obiektu i kodu elementu {{s|PobierzŚródtekst}} {{Patrz|PobierzŚródtekst}}, tych podtablic może być wiele dla różnych tych. == {{Śródtytuł|p.UstawianiePobierz}}{{Code|p.UstawianiePobierz}} == Funkcja dodaje do danego elementu typu: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, utworzonego na podstawie obiektów nie typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, w postaci tablicy utworzonego z trzech elementów, tzn.: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}, a trzeci element tablicy jest numerkiem nazwanym, ile w danym elemencie było wtedy aktualnie elenetów przed wywołaniem szablonu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, dla zmiennych w tablicach: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. Ten element służy do wstawiania innych elementów do tablic nazwanych uchwytów oraz ich numerków (dla elementów numerowanych) lub nie, aby przesunąc od pewnego momentu ich zawartości do przodu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawianiePobierz(tablica_zmiennych,tablica_zmiennych2,obiekt,kod,nazwa_obiektu,uchwyt_obiektu,czy_artykul_korzystany)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 2 = {{Code|tablica_zmiennych2}} | _2 = jak w: {{LinkPatrz|tablica_zmiennych2}}, | 3 = {{Code|obiekt}} {{LinkPatrz|Pobierz: obiekt}} | _3 = obiekt, jak: {{LinkPatrz|rodzaj: Śródtekst}}, obiektu typu {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, | 4 = {{Code|kod}} {{LinkPatrz|Pobierz: kod}} | _4 = numer danego obiektu typu {{LinkPatrz|Pobierz}}, | 5 = {{Code|nazwa_obiektu}} {{Patrz|nazwa_obiektu}} | _5 = nazwa danego obiektu {{LinkPatrz|Śródtekst}}, | 6 = {{Code|uchwyt_obiektu}} {{Patrz|uchwyt_obiektu}} | _6 = unikalny uchwyt danego obiektu {{LinkPatrz|Śródtekst}}, | 7 = {{Code|czy_artykul_korzystany}} | _7 = jak w: {{LinkPatrz|czy_artykul_korzystany}}. }} Gdy: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, przyjmuje wartość {{Code|true}}, wtedy jest używana tablica: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tej samej tablicy, co poprzednio, ale dla elementów typu: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, na podstawie tego w ten sposób jest tworzona pewna tablica, te elementy są dodawane do drugiej podtablicy w tablicy dodawanej w {{LinkZobaczTeż|p.DodawanieDoBazyStronySzablonuTekstu}}. == {{Śródtytuł|p.UstawPobierzKorzystanie}}{{Code|p.UstawPobierzKorzystanie}} == Funkcja na podstawie stworzonych elementów w tablicy {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{Patrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, która skłąda się z tablic numerowanych, gdzie w każdej takiej jego tablicy są dwie podtablice, te elementy są zbierane dla: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, pierwsza taka podtablica jest tablicą numerowaną z: {{Code|nazwa_obiektu}} {{LinkPatrz|nazwa_obiektu}}, i {{Code|uchwyt_obiektu}} {{LinkPatrz|uchwyt_obiektu}}, a druga taka podtablica jest z: {{Code|Pobierz: obiekt}} {{LinkPatrz|Pobierz: obiekt}}, i {{Code|Pobierz: kod}} {{LinkPatrz|Pobierz: kod}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UstawPobierzKorzystanie(tablica_zmiennych2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tablica_zmiennych2}} | _1 = jak w: {{LinkPatrz|tablica_zmiennych2}}. }} Na podstawie każdego takich elementów numerowanych w tablicy: {{Code|tablica_szablonu_tekstu_linkowe_korzystane}} {{LinkPatrz|tablica_szablonu_tekstu_linkowe_korzystane}}, tablicy: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, jest uruchamiana funkcja: {{LinkŚródtytuł|p.UstawianiePobierz}}, dla pierwszego parametru z wartością {{Code|nil}}, drugim: {{Code|tablica_zmiennych2}} {{LinkPatrz|tablica_zmiennych2}}, i dalszymi. == {{Śródtytuł|p.ZamienianiePobierzNaKod}}{{Code|p.ZamienianiePobierzNaKod}} == Funkcja na podstawie parametru {{ZobaczTeż|tekst}}: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, występujących w tabeli: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu}}, zdefiniowanych jako tablica: {{Code|pozycja[3][1][1]}}. Modyfikuje też element {{ZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}}: {{Code|(pozycja[4] or {})[1]}} lub {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, aby wyświetlić zamieniony, czyli zmodyfikowany, element, ewentualnie ze zmodyfikowaną bazą danych kodów. Funkcja do szybszego działania wykorzystuje tabelę: {{Code|(pozycja[4] or {})[2]}} lub {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. Definicja skrótowa funkcji: <syntaxhighlight lang="Lua"> function p.ZamienianiePobierzNaKod(obiekt,kod,pozycja,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_korzystane)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|obiekt}} | _1 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 2 = {{Code|kod}} | _2 = jak w: {{LinkPatrz|Pobierz: kod}}, | 3 = {{Code|pozycja}} | _3 = dany element numerowany, który przedstawia pozycję dla elementów typu: {{LinkPatrz|Śródtekst}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} {{Patrz|nazwa_modulu_aktualna_czy_biezaca}} | _4 = nazwa modułu aktualna lub bieżąca, w której występują elementy typu {{LinkPatrz|rodzaj: Śródtekst}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|czy_korzystane}} {{Patrz|czy_korzystane}} | _7 = czy wykorzystawane elementy są typu: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, gdy ta wartość przyjmuje wartość {{Code|true}}, przeciwnie: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje do modyfikacji funkcję: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, ona seryjnie modyfikuje całe elementy tekstu {{LinkZobaczTeż|tekst}} lub elementy bazy {{LinkZobaczTeż|tablica_analizy_obiektow_strony_dany_modul}} o pewnych dwuwymiarowych nazwach, co do kodów bazy. Element tekstu do modyfikacji jest uzyskiwany z funkcji: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, jeżeli ten tekst istnieje, a gdy nie, to funkcja nie zwraca żadnej wartości, a jak jest, to ten tekst, ze zmodyfikowaną tabelą bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, też ze zmodyfikowaną tabelą parametrów: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuPobierz}} == Funkcja zastępuje swoje odwołanie uchwytowe dla elementu typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, rodzaju: {{Code|rodzaj: Śródtekst}} {{LinkPatrz|rodzaj: Śródtekst}}, odpowiednimi treściami z obiektów o tych samych uchwytach z elementów typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jeżeli jest jeden tam taki uchwyt dla tego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuPobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = treści obiektu typu: {{LinkPatrz|Pobierz}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|Pobierz: obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|Pobierz: kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja wykorzystuje funkcję: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na bieżącej stronie, lub {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - gdy jego odpowiednik obiekt {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, znajduje się na stronie niebieżącej, obie tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, a także funkcję: {{LinkŚródtytuł|p.ZamienianiePobierzNaKod}}, który zamienia ten obiekt: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, pobierania na odpowiedni wikikod do działania z szablonu tekstu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Jeżeli funkcja nie wykrywała w ramach aktualnej strony elementu typu nie {{LinkPatrz|Pobierz}} swojego odpowiednika względem tej pierwszej tablicy, to szuka je w ramach tej niekaktualnej względem tej drugiej, a jeżeli funkcja znalazła taki swój odpowiednik, to go zwraca, a jeżeli nie, to zwraca wartość {{Code|nil}}. == {{Śródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}}{{Code|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} == Szablon zastępuje szablon typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, jej zawartością tekstową: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, jeśli istnieje, w odpowiedni sposób. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EdytowanieSzablonoweTekstuTypuNiePobierz(szablon,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|szablon}} | _1 = jak w: {{LinkPatrz|szablon}}, | 2 = {{Code|obiekt}} | _2 = jak w: {{LinkPatrz|obiekt}}, | 3 = {{Code|kod}} | _3 = jak w: {{LinkPatrz|kod}}, | 4 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _4 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 5 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _5 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _6 = jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 7 = {{Code|tablica_zmiennych}} | _7 = jak w: {{LinkPatrz|tablica_zmiennych}}. }} Funkcja do swojego działania wykorzystuje tabelę: {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}}, tablicy: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, by dało się to zastąpienie wykonać. Funkcja do swojego działania potrzebuje: {{LinkŚródtytuł|p.ParametrTekstowySzablonuTekstu}}, który pobiera tekst z tego szablonu, i zamieniąc go typu {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, ale nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, właśnie na to. == {{Śródtytuł|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}}{{Code|p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu}} == Funkcje elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, i typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, zastępuje je zawartością kolejno z odpowiednich szablonów pierwszego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}} (tutaj z siebie samego pobiera tekst, i zastępują siebie właśnie tym), i drugiego typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, czyli: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jej zawartością, oczywiście, biorąc zawartość tekstowa z: {{Code|tekst}} {{LinkPatrz|tekst}}, {{Code|treść}} {{LinkPatrz|treść}}, lub {{Code|1}} {{LinkPatrz|1}}, z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, jest właśnie tam ustawiana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AktualizowanieSzablonowychTekstowychKompletowaniaInformacjiTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_zmiennych,IterowaniePoElementachTekstu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _1 = tekst, na którym operujemy, modyfikując odpowiednio jego kody, dotyczące tych dwóch szablonów, | 2 = {{Code|nazwa_modulu_aktualna_czy_biezaca}} | _2 = jak w: {{LinkPatrz|nazwa_modulu_aktualna_czy_biezaca}}, | 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, | 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 =jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, | 5 = {{Code|tablica_zmiennych}} | _5 = jak w: {{LinkPatrz|tablica_zmiennych}}, | 6 = {{Code|IterowaniePoElementachTekstu}} {{Patrz|IterowaniePoElementachTekstu}} | _6 = iterator po elementach kodów szablonowych w tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} i związaną z nim: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}. }} Funkcja wykorzystuje odpowiednio tablice: {{Code|tablica_szablonu_tekstu_niekorzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_niekorzystanych}} - tablica o szablonach {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}} na stronach niebieżących, i {{Code|tablica_szablonu_tekstu_korzystanych}} {{LinkPatrz|tablica_szablonu_tekstu_korzystanych}} - a tutaj bieżących, obie tablicy są podtabelami tabeli wyższej (nadrzędnej: {{Code|tablica_zmiennych}} {{LinkPatrz|tablica_zmiennych}}, są używane do szybkiego zakończeniu funkcji, gdy by takich tam obiektów nie było, w tekście. Są one używane do zastąpienia ich zawartością z szablonów typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Funkcja do swojego działania wykorzystuje funkcje: {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuPobierz}} - gdy mamy szablony typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, i {{LinkŚródtytuł|p.EdytowanieSzablonoweTekstuTypuNiePobierz}} - jeśli używamy elementy typu: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. Aby wykorzystać te funkcje, uruchamiana jest najpierw: {{Code|{{sr|#p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, to zastąpienia tego typu szanlonów odpowiednią zawartością z tych zmiennych. Funkcja do sprawdzania, czy są tego typu szablony z dwóch, rewiduje, czy one są pierwszego typu, czy drugiego, aby dało się je zastąpić wartością wikikodu ze zmiennej z szablonów {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}, to wykorzystuje do tego typu tabele: {{Code|{{sr|#p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu}}, dla obiektów typu: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, a: {{Code|{{sr|#p.szablony_stronicowego_parsera.szablony_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_stronicowego_parsera.szablony_tekstu}}, dla obiektu typu nie: {{Code|Pobierz}} {{LinkPatrz|Pobierz}}, ale: {{Code|Śródtekst}} {{LinkPatrz|Śródtekst}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rhygb7gqdlfnqw5uxi00uxli9puba63 Wikibooks:Moduły/Parametry/Tom I 4 63967 555630 553305 2026-09-11T05:05:36Z Persino 2851 555630 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje liczb elementów w tabeli lub szablonów, w wersji mnogiej lub normalnej. == {{Code|p["LiczbaElementówNumerowanychTablicy"]}} == Funkcja liczy liczbę numerowanych elementów tablicy od {{Code|1}}, one nie mogą mieć miedzy sobą przerw, zaczynające się właśnie od niej, czyli: {{Code|1,2,3,4,...}}. Można podać, czy oczekujemy wartości tylko niepustych. Można wskazać, czy liczba elementów jest mnoga (większa od {{Code|1}}, ale równa {{Code|2}}, w tym przypadku, a jeżeli nie jest taka, to zrzucony wynik jest {{Code|0}}, {{Code|1}}, ale nie {{Code|2}}). Ona liczy liczbę parametrów numerowanych niepustych, tzn. elementy tam są od {{Code|1}}, bez przerw, a jeżeli są przerwy, jeżeli taki przykład sformułować, to do jej pierwszej, a w tym przypadku nie ma takich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac,mnoga)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela, na którym operujemy. | 2 = {{Code|wliczac}} | _2 = Czy szukamy niepuste elementy numerowane tabeli, jeżeli {{Code|true}}. | 3 = {{Code|mnoga}} | _3 = Czy liczba tych numerowanych elementów jest mnoga, jeżeli {{Code|true}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={"nazwa1","nazwa2","nazwa3","nazwa4","nazwa5","nazwa6","nazwa7","nazwa8","nazwa9",}; local parametry_modul=require("Module:Parametry"); local liczba_elementow_nienazwanych_tablicy=parametry_modul["LiczbaElementówNumerowanychTablicy"](tabela,true,false); </syntaxhighlight> Wynik tej funkcji jest {{Code|9}}, ponieważ ma on mnóstwo parametrów nienazwanych, które jednocześnie są numerowane, czyli są one od {{Code|1}} i ciągną się bez przerw, aż do pewnej liczby. Powyższe wywołanie liczy liczbę parametrów numerowanych niepustych. == {{Code|p["LiczbaElementówNumerowanychSzablonu"]}} == Funkcja wywoływana w ramce w wikikodzie, wykorzystująca funkcję z definicji: {{Code|{{sr|#p["LiczbaElementówNumerowanychTablicy"]|p=Parametry}}}}, i robiąca to samo, co ona, tylko wykorzystywana na innym poziomie, tzn. jako wywołana ramka w szablonie, a nie powinna być uruchamiana w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. <syntaxhighlight lang="lua"> p["LiczbaElementówNumerowanychSzablonu"]=function(frame)...end; </syntaxhighlight> Parametrami funkcji ramki tablicy transportu, które z dwóch odpowiadają parametrom: {{Code|wliczac}} i {{Code|mnoga}}, wykorzystywanej funkcji, są kolejno: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy szukamy niepuste elementy numerowane parametrów szablonu, w którym ta ramka została wywołana, w postaci tej funkcji, jeżeli ta zmienna niepusta. | 2 = {{Code|mnoga}} | _2 = Czy liczba takich wyszukań jest mnoga, jeżeli niepusta. }} Odpowiednikiem zmiennej {{Code|tabela}}: {{OpisParametrów | 1 = {{Code|frame:getParent().args}} | _1 = Czyli parametry szablonu rodzica, policzona za pomocą tablicy ramki, jej funkcji, tablicy transportu. }} Funkcje wywołuje się w ramce w szablonie, jako dziecko, w postaci, np., gdy rozważamy parametry niepuste szablonu, z ustawionym niepustym parametrem mnogości, wtedy ona powinna zwrócić liczbę {{Code|0}}, {{Code|1}} lub {{Code|2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|LiczbaElementówNumerowanychSzablonu|niepuste=tak|mnoga=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1|nazwa2|nazwa3|nazwa4|nazwa5|nazwa6|nazwa7|nazwa8|nazwa9}} </syntaxhighlight> Powyższe wywołanie zrzuca wynik wyliczony, a ponieważ ustawiony został parametr mnogości w dziecku tego szablonu, wtedy zwraca liczbę {{Code|2}}, a gdyby nie był, to zobaczylibyśmy liczbę tych elementów. Jak można zauważyć, że ma on parametry numerowane (zaczynające się od jedynki), które można znaleźć w parametrach szablonu, jeżeli tam w ogóle istnieją. == {{Code|p["LiczbaElementówNienazwanychTablicy"]}} == Funkcja liczy liczbę nienazwanych elementów niekoniecznie od {{Code|1}}, ale mogą zaczynać się od pewnej liczby, mogą między sobą, nie zawsze, mieć przerwy, np. mogą być podane tak: {{Code|3,10,15,..}}. Można podać, czy oczekujemy wartości tylko niepustych. Można wskazać, czy liczba elementów jest mnoga (większa od {{Code|1}}, ale równa {{Code|2}}, w tym przypadku, a jeżeli nie jest taka, to zrzucony wynik jest {{Code|0}}, {{Code|1}}, ale nie {{Code|2}}). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówNienazwanychTablicy"]=function(tabela, wliczac,mnoga)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela, na którym operujemy. | 2 = {{Code|wliczac}} | _2 = Czy szukamy niepuste elementy numerowane tabeli, ma wartosć nieodpowiadająca {{Code|false}}, | 3 = {{Code|mnoga}} | _3 = Czy liczba tych numerowanych elementów jest mnoga, wartość jak powyżej. }} Funkcja z użytym parametrem {{Code|mnoga}} z wartością {{Code|true}} jest taka, że zawsze zwracana jest wartość {{Code|2}} przez nią. Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={[2]="nazwa1",[10]="nazwa2",[15]="nazwa3",[18]="nazwa4",}; local parametry_modul=require("Module:Parametry"); local liczba_elementow_nienazwanych_tablicy=parametry_modul["LiczbaElementówNienazwanychTablicy"](tabela,true,false); </syntaxhighlight> Wynik tej funkcji jest {{Code|4}}, bo taka jest liczba parametrów nienazwanych, ale nie numerowanych. Powyższe wywołanie liczy liczbę parametrów nienazwanych niepustych. == {{Code|p["LiczbaParametrówNienazwanychSzablonu"]}} == Funkcja wywoływana w ramce w wikikodzie, wykorzystująca funkcję z definicji: {{Code|{{sr|#p["LiczbaElementówNienazwanychTablicy"]|p=Parametry}}}}, i robiąca to samo, co ona, tylko wykorzystywana na innym poziomie, tzn. jako wywołana ramka w szablonie, a nie powinna być uruchamiana w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaParametrówNienazwanychSzablonu"]=function(frame)...end; </syntaxhighlight> Parametrami funkcji tablicy ramki, odpowiedniki parametrów: {{Code|wliczac}} i {{Code|mnoga}} funkcji wykorzystywanej z definicji, są kolejno: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy szukamy niepuste elementy numerowane parametrów szablonu, w którym ta ramka została wywołana, w postaci tej funkcji, jeżeli ten argument niepusty. | 2 = {{Code|mnoga}} | _2 = Czy liczba takich wyszukań jest mnoga, jeżeli niepusty. }} Odpowiednikiem parametru {{Code|tabela}} jest: * {{Code|frame:getParent().args}} - czyli parametry szablonu rodzica, policzona za pomocą tablicy ramki, jej funkcji, tablicy transportu. Funkcje wywołuje się w ramce w szablonie, jako dziecko, w postaci, np., gdy rozważamy parametry niepuste szablonu, z ustawieniem parametrem mnogości, wtedy funkcja ta powinna zwrócić liczbę {{Code|0}}, {{Code|1}} lub {{Code|2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|LiczbaParametrówNienazwanychSzablonu|niepuste=tak|mnoga=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|2=nazwa1|10=nazwa2|15=nazwa3|18=nazwa4}} </syntaxhighlight> Powyższe wywołanie liczy liczbę parametrów nienazwanych niepustych w liczbie mnogie, tzn. gdy ten parametr jest podany. Powyższa funkcja zrzuca wynik wyliczony, ze względu na to ustawienie w dziecku, jako liczbę {{Code|2}}, a nie {{Code|4}}. == {{Code|p["LiczbaElementówTablicy"]}} == Funkcja liczy liczbę nienazwanych (numerowanych) i nazwanych elementów tablicy. Można podać, czy oczekujemy wartości tylko niepustych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówTablicy"]=function(tabela,wliczac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela do rozważań na problemy tej funkcji. | 2 = {{Code|wliczac}} | _2 = Czy ma liczyć liczbę elementów niepustych, jeżeli {{Code|true}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={ 10, nazwa = 5, parametr = "tak", }; local parametry_modul=require("Module:Parametry"); local liczba_elementow_tablicy=parametry_modul["LiczbaElementówTablicy"](tabela,true); </syntaxhighlight> Policzona liczba elementów {{Code|liczba_elementow_tablicy}} jest {{Code|3}}. Powyższe wywołanie liczy liczbę wszystkich parametrów niepustych w podanej tablicy. == {{Code|p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]}} == Funkcja liczy liczbę nienazwanych elementów od {{Code|1}}, ale mogą zaczynać się od pewnej liczby, mogą między sobą mieć przerwy, np.: {{Code|3,10,15,..}}, liczbę elementów tablicy odpowiednio skonstruowanych, charakterystycznych dla tej funkcji. Można podać, czy oczekujemy wartości tylko niepustych. Można wskazać, czy liczba elementów jest mnoga (większa od {{Code|1}}, wtedy ta funkcja zwraca wynik {{Code|2}}, a jeżeli nie jest taka, to wtedy zwracany wynik jest {{Code|0}} lub {{Code|1}}). Należy też podać niepusty przedrostek, niebędący liczbą zakodowaną w łańcuchu znakowym. Należy wskazać w funkcji, czy oczekujemy formy numerkowe, ale nie muszą to być liczby, ale mogą być one łańcuchami znakowymi, a jeżeli nie są takie, to one muszą być w postaci czystych liczb. Definicja form numerkowych jest taka, że one po przekształceniu na liczbę funkcją {{LzLua|tonumber}} stają się normalnymi liczbami {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac,czy_formy_numerkowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela, na którym operujemy. | 2 = {{Code|przedrostek}} | _2 = Niepusty, niebędący liczbą łańcuchową, przedrostek, który ma być przed liczbą. | 3 = {{Code|wliczac}} | _3 = Czy szukamy niepuste elementy numerowane tabeli. | 4 = {{Code|czy_formy_numerkowe}} | _4 = Czy wyszukiwane liczby przy pomocy funkcji {{Code|pairs}}, czy są czystymi liczbami {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Funkcja liczy liczbę parametrów nienazwanych i nazwanych, ale z podanym przedrostkiem, lub nie, skonstruowanych z tych pierwszych. Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={[2]="wartość1", [10]="wartosć2", [15]="wartość3", ["18"]="wartość4", ["nazwa2"] = "wartosc5", ["nazwa10"] = "wartość6", ["nazwa18"] = "wartość7", }; local parametry_modul=require("Module:Parametry"); local liczba_elementow_nienazwanych_z_przedrostkiem_lub_nie_w_tablicy=parametry_modul["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"](tabela,"nazwa",true,false); </syntaxhighlight> Funkcja w postaci wartości {{Code|liczba_elementow_nienazwanych_z_przedrostkiem_lub_nie_w_tablicy}} zwróci liczbę {{Code|6}}, a nie {{Code|7}}, bo element {{Code|["18"]{{=}}"wartość4"}}, a w niej łańcuch znakowy klucza jest jedynie formą numerkową, a nie liczbą. Powyższe wywołanie liczy liczbę parametrów nazwanych niepustych z przedrostkiem, lub czysto numerkowych - nienazwanych, ale nie również form numerkowych (szeregi), czyli zapisanych w postaci łańcucha znaków, nie jako typu {{Code|number}} wskazaną przez obudowaną funkcję {{LzLua|type}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> srdo6v1aavxqepz3mcv4vtwzeu0kjie 555631 555630 2026-09-11T05:06:15Z Persino 2851 /* {{Code|p["LiczbaParametrówNienazwanychSzablonu"]}} */ 555631 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje liczb elementów w tabeli lub szablonów, w wersji mnogiej lub normalnej. == {{Code|p["LiczbaElementówNumerowanychTablicy"]}} == Funkcja liczy liczbę numerowanych elementów tablicy od {{Code|1}}, one nie mogą mieć miedzy sobą przerw, zaczynające się właśnie od niej, czyli: {{Code|1,2,3,4,...}}. Można podać, czy oczekujemy wartości tylko niepustych. Można wskazać, czy liczba elementów jest mnoga (większa od {{Code|1}}, ale równa {{Code|2}}, w tym przypadku, a jeżeli nie jest taka, to zrzucony wynik jest {{Code|0}}, {{Code|1}}, ale nie {{Code|2}}). Ona liczy liczbę parametrów numerowanych niepustych, tzn. elementy tam są od {{Code|1}}, bez przerw, a jeżeli są przerwy, jeżeli taki przykład sformułować, to do jej pierwszej, a w tym przypadku nie ma takich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac,mnoga)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela, na którym operujemy. | 2 = {{Code|wliczac}} | _2 = Czy szukamy niepuste elementy numerowane tabeli, jeżeli {{Code|true}}. | 3 = {{Code|mnoga}} | _3 = Czy liczba tych numerowanych elementów jest mnoga, jeżeli {{Code|true}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={"nazwa1","nazwa2","nazwa3","nazwa4","nazwa5","nazwa6","nazwa7","nazwa8","nazwa9",}; local parametry_modul=require("Module:Parametry"); local liczba_elementow_nienazwanych_tablicy=parametry_modul["LiczbaElementówNumerowanychTablicy"](tabela,true,false); </syntaxhighlight> Wynik tej funkcji jest {{Code|9}}, ponieważ ma on mnóstwo parametrów nienazwanych, które jednocześnie są numerowane, czyli są one od {{Code|1}} i ciągną się bez przerw, aż do pewnej liczby. Powyższe wywołanie liczy liczbę parametrów numerowanych niepustych. == {{Code|p["LiczbaElementówNumerowanychSzablonu"]}} == Funkcja wywoływana w ramce w wikikodzie, wykorzystująca funkcję z definicji: {{Code|{{sr|#p["LiczbaElementówNumerowanychTablicy"]|p=Parametry}}}}, i robiąca to samo, co ona, tylko wykorzystywana na innym poziomie, tzn. jako wywołana ramka w szablonie, a nie powinna być uruchamiana w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. <syntaxhighlight lang="lua"> p["LiczbaElementówNumerowanychSzablonu"]=function(frame)...end; </syntaxhighlight> Parametrami funkcji ramki tablicy transportu, które z dwóch odpowiadają parametrom: {{Code|wliczac}} i {{Code|mnoga}}, wykorzystywanej funkcji, są kolejno: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy szukamy niepuste elementy numerowane parametrów szablonu, w którym ta ramka została wywołana, w postaci tej funkcji, jeżeli ta zmienna niepusta. | 2 = {{Code|mnoga}} | _2 = Czy liczba takich wyszukań jest mnoga, jeżeli niepusta. }} Odpowiednikiem zmiennej {{Code|tabela}}: {{OpisParametrów | 1 = {{Code|frame:getParent().args}} | _1 = Czyli parametry szablonu rodzica, policzona za pomocą tablicy ramki, jej funkcji, tablicy transportu. }} Funkcje wywołuje się w ramce w szablonie, jako dziecko, w postaci, np., gdy rozważamy parametry niepuste szablonu, z ustawionym niepustym parametrem mnogości, wtedy ona powinna zwrócić liczbę {{Code|0}}, {{Code|1}} lub {{Code|2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|LiczbaElementówNumerowanychSzablonu|niepuste=tak|mnoga=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1|nazwa2|nazwa3|nazwa4|nazwa5|nazwa6|nazwa7|nazwa8|nazwa9}} </syntaxhighlight> Powyższe wywołanie zrzuca wynik wyliczony, a ponieważ ustawiony został parametr mnogości w dziecku tego szablonu, wtedy zwraca liczbę {{Code|2}}, a gdyby nie był, to zobaczylibyśmy liczbę tych elementów. Jak można zauważyć, że ma on parametry numerowane (zaczynające się od jedynki), które można znaleźć w parametrach szablonu, jeżeli tam w ogóle istnieją. == {{Code|p["LiczbaElementówNienazwanychTablicy"]}} == Funkcja liczy liczbę nienazwanych elementów niekoniecznie od {{Code|1}}, ale mogą zaczynać się od pewnej liczby, mogą między sobą, nie zawsze, mieć przerwy, np. mogą być podane tak: {{Code|3,10,15,..}}. Można podać, czy oczekujemy wartości tylko niepustych. Można wskazać, czy liczba elementów jest mnoga (większa od {{Code|1}}, ale równa {{Code|2}}, w tym przypadku, a jeżeli nie jest taka, to zrzucony wynik jest {{Code|0}}, {{Code|1}}, ale nie {{Code|2}}). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówNienazwanychTablicy"]=function(tabela, wliczac,mnoga)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela, na którym operujemy. | 2 = {{Code|wliczac}} | _2 = Czy szukamy niepuste elementy numerowane tabeli, ma wartosć nieodpowiadająca {{Code|false}}, | 3 = {{Code|mnoga}} | _3 = Czy liczba tych numerowanych elementów jest mnoga, wartość jak powyżej. }} Funkcja z użytym parametrem {{Code|mnoga}} z wartością {{Code|true}} jest taka, że zawsze zwracana jest wartość {{Code|2}} przez nią. Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={[2]="nazwa1",[10]="nazwa2",[15]="nazwa3",[18]="nazwa4",}; local parametry_modul=require("Module:Parametry"); local liczba_elementow_nienazwanych_tablicy=parametry_modul["LiczbaElementówNienazwanychTablicy"](tabela,true,false); </syntaxhighlight> Wynik tej funkcji jest {{Code|4}}, bo taka jest liczba parametrów nienazwanych, ale nie numerowanych. Powyższe wywołanie liczy liczbę parametrów nienazwanych niepustych. == {{Code|p["LiczbaParametrówNienazwanychSzablonu"]}} == Funkcja wywoływana w ramce w wikikodzie, wykorzystująca funkcję z definicji: {{Code|{{sr|#p["LiczbaElementówNienazwanychTablicy"]|p=Parametry}}}}, i robiąca to samo, co ona, tylko wykorzystywana na innym poziomie, tzn. jako wywołana ramka w szablonie, a nie powinna być uruchamiana w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaParametrówNienazwanychSzablonu"]=function(frame)...end; </syntaxhighlight> Parametrami funkcji tablicy ramki, odpowiedniki parametrów: {{Code|wliczac}} i {{Code|mnoga}} funkcji wykorzystywanej z definicji, są kolejno: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy szukamy niepuste elementy numerowane parametrów szablonu, w którym ta ramka została wywołana, w postaci tej funkcji, jeżeli ten argument niepusty. | 2 = {{Code|mnoga}} | _2 = Czy liczba takich wyszukań jest mnoga, jeżeli niepusty. }} Odpowiednikiem parametru {{Code|tabela}} jest: {{OpisParametrów | 1 = {{Code|frame:getParent().args}} | _1 = Parametry szablonu rodzica, policzona za pomocą tablicy ramki, jej funkcji, tablicy transportu. }} Funkcje wywołuje się w ramce w szablonie, jako dziecko, w postaci, np., gdy rozważamy parametry niepuste szablonu, z ustawieniem parametrem mnogości, wtedy funkcja ta powinna zwrócić liczbę {{Code|0}}, {{Code|1}} lub {{Code|2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|LiczbaParametrówNienazwanychSzablonu|niepuste=tak|mnoga=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|2=nazwa1|10=nazwa2|15=nazwa3|18=nazwa4}} </syntaxhighlight> Powyższe wywołanie liczy liczbę parametrów nienazwanych niepustych w liczbie mnogie, tzn. gdy ten parametr jest podany. Powyższa funkcja zrzuca wynik wyliczony, ze względu na to ustawienie w dziecku, jako liczbę {{Code|2}}, a nie {{Code|4}}. == {{Code|p["LiczbaElementówTablicy"]}} == Funkcja liczy liczbę nienazwanych (numerowanych) i nazwanych elementów tablicy. Można podać, czy oczekujemy wartości tylko niepustych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówTablicy"]=function(tabela,wliczac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela do rozważań na problemy tej funkcji. | 2 = {{Code|wliczac}} | _2 = Czy ma liczyć liczbę elementów niepustych, jeżeli {{Code|true}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={ 10, nazwa = 5, parametr = "tak", }; local parametry_modul=require("Module:Parametry"); local liczba_elementow_tablicy=parametry_modul["LiczbaElementówTablicy"](tabela,true); </syntaxhighlight> Policzona liczba elementów {{Code|liczba_elementow_tablicy}} jest {{Code|3}}. Powyższe wywołanie liczy liczbę wszystkich parametrów niepustych w podanej tablicy. == {{Code|p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]}} == Funkcja liczy liczbę nienazwanych elementów od {{Code|1}}, ale mogą zaczynać się od pewnej liczby, mogą między sobą mieć przerwy, np.: {{Code|3,10,15,..}}, liczbę elementów tablicy odpowiednio skonstruowanych, charakterystycznych dla tej funkcji. Można podać, czy oczekujemy wartości tylko niepustych. Można wskazać, czy liczba elementów jest mnoga (większa od {{Code|1}}, wtedy ta funkcja zwraca wynik {{Code|2}}, a jeżeli nie jest taka, to wtedy zwracany wynik jest {{Code|0}} lub {{Code|1}}). Należy też podać niepusty przedrostek, niebędący liczbą zakodowaną w łańcuchu znakowym. Należy wskazać w funkcji, czy oczekujemy formy numerkowe, ale nie muszą to być liczby, ale mogą być one łańcuchami znakowymi, a jeżeli nie są takie, to one muszą być w postaci czystych liczb. Definicja form numerkowych jest taka, że one po przekształceniu na liczbę funkcją {{LzLua|tonumber}} stają się normalnymi liczbami {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac,czy_formy_numerkowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela, na którym operujemy. | 2 = {{Code|przedrostek}} | _2 = Niepusty, niebędący liczbą łańcuchową, przedrostek, który ma być przed liczbą. | 3 = {{Code|wliczac}} | _3 = Czy szukamy niepuste elementy numerowane tabeli. | 4 = {{Code|czy_formy_numerkowe}} | _4 = Czy wyszukiwane liczby przy pomocy funkcji {{Code|pairs}}, czy są czystymi liczbami {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Funkcja liczy liczbę parametrów nienazwanych i nazwanych, ale z podanym przedrostkiem, lub nie, skonstruowanych z tych pierwszych. Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={[2]="wartość1", [10]="wartosć2", [15]="wartość3", ["18"]="wartość4", ["nazwa2"] = "wartosc5", ["nazwa10"] = "wartość6", ["nazwa18"] = "wartość7", }; local parametry_modul=require("Module:Parametry"); local liczba_elementow_nienazwanych_z_przedrostkiem_lub_nie_w_tablicy=parametry_modul["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"](tabela,"nazwa",true,false); </syntaxhighlight> Funkcja w postaci wartości {{Code|liczba_elementow_nienazwanych_z_przedrostkiem_lub_nie_w_tablicy}} zwróci liczbę {{Code|6}}, a nie {{Code|7}}, bo element {{Code|["18"]{{=}}"wartość4"}}, a w niej łańcuch znakowy klucza jest jedynie formą numerkową, a nie liczbą. Powyższe wywołanie liczy liczbę parametrów nazwanych niepustych z przedrostkiem, lub czysto numerkowych - nienazwanych, ale nie również form numerkowych (szeregi), czyli zapisanych w postaci łańcucha znaków, nie jako typu {{Code|number}} wskazaną przez obudowaną funkcję {{LzLua|type}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> c6c3hj64rx1s1gfts6yoyw9k29c7wcx 555632 555631 2026-09-11T05:06:40Z Persino 2851 /* {{Code|p["LiczbaElementówNumerowanychSzablonu"]}} */ 555632 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje liczb elementów w tabeli lub szablonów, w wersji mnogiej lub normalnej. == {{Code|p["LiczbaElementówNumerowanychTablicy"]}} == Funkcja liczy liczbę numerowanych elementów tablicy od {{Code|1}}, one nie mogą mieć miedzy sobą przerw, zaczynające się właśnie od niej, czyli: {{Code|1,2,3,4,...}}. Można podać, czy oczekujemy wartości tylko niepustych. Można wskazać, czy liczba elementów jest mnoga (większa od {{Code|1}}, ale równa {{Code|2}}, w tym przypadku, a jeżeli nie jest taka, to zrzucony wynik jest {{Code|0}}, {{Code|1}}, ale nie {{Code|2}}). Ona liczy liczbę parametrów numerowanych niepustych, tzn. elementy tam są od {{Code|1}}, bez przerw, a jeżeli są przerwy, jeżeli taki przykład sformułować, to do jej pierwszej, a w tym przypadku nie ma takich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac,mnoga)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela, na którym operujemy. | 2 = {{Code|wliczac}} | _2 = Czy szukamy niepuste elementy numerowane tabeli, jeżeli {{Code|true}}. | 3 = {{Code|mnoga}} | _3 = Czy liczba tych numerowanych elementów jest mnoga, jeżeli {{Code|true}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={"nazwa1","nazwa2","nazwa3","nazwa4","nazwa5","nazwa6","nazwa7","nazwa8","nazwa9",}; local parametry_modul=require("Module:Parametry"); local liczba_elementow_nienazwanych_tablicy=parametry_modul["LiczbaElementówNumerowanychTablicy"](tabela,true,false); </syntaxhighlight> Wynik tej funkcji jest {{Code|9}}, ponieważ ma on mnóstwo parametrów nienazwanych, które jednocześnie są numerowane, czyli są one od {{Code|1}} i ciągną się bez przerw, aż do pewnej liczby. Powyższe wywołanie liczy liczbę parametrów numerowanych niepustych. == {{Code|p["LiczbaElementówNumerowanychSzablonu"]}} == Funkcja wywoływana w ramce w wikikodzie, wykorzystująca funkcję z definicji: {{Code|{{sr|#p["LiczbaElementówNumerowanychTablicy"]|p=Parametry}}}}, i robiąca to samo, co ona, tylko wykorzystywana na innym poziomie, tzn. jako wywołana ramka w szablonie, a nie powinna być uruchamiana w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. <syntaxhighlight lang="lua"> p["LiczbaElementówNumerowanychSzablonu"]=function(frame)...end; </syntaxhighlight> Parametrami funkcji ramki tablicy transportu, które z dwóch odpowiadają parametrom: {{Code|wliczac}} i {{Code|mnoga}}, wykorzystywanej funkcji, są kolejno: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy szukamy niepuste elementy numerowane parametrów szablonu, w którym ta ramka została wywołana, w postaci tej funkcji, jeżeli ta zmienna niepusta. | 2 = {{Code|mnoga}} | _2 = Czy liczba takich wyszukań jest mnoga, jeżeli niepusta. }} Odpowiednikiem zmiennej {{Code|tabela}}: {{OpisParametrów | 1 = {{Code|frame:getParent().args}} | _1 = Parametry szablonu rodzica, policzona za pomocą tablicy ramki, jej funkcji, tablicy transportu. }} Funkcje wywołuje się w ramce w szablonie, jako dziecko, w postaci, np., gdy rozważamy parametry niepuste szablonu, z ustawionym niepustym parametrem mnogości, wtedy ona powinna zwrócić liczbę {{Code|0}}, {{Code|1}} lub {{Code|2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|LiczbaElementówNumerowanychSzablonu|niepuste=tak|mnoga=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1|nazwa2|nazwa3|nazwa4|nazwa5|nazwa6|nazwa7|nazwa8|nazwa9}} </syntaxhighlight> Powyższe wywołanie zrzuca wynik wyliczony, a ponieważ ustawiony został parametr mnogości w dziecku tego szablonu, wtedy zwraca liczbę {{Code|2}}, a gdyby nie był, to zobaczylibyśmy liczbę tych elementów. Jak można zauważyć, że ma on parametry numerowane (zaczynające się od jedynki), które można znaleźć w parametrach szablonu, jeżeli tam w ogóle istnieją. == {{Code|p["LiczbaElementówNienazwanychTablicy"]}} == Funkcja liczy liczbę nienazwanych elementów niekoniecznie od {{Code|1}}, ale mogą zaczynać się od pewnej liczby, mogą między sobą, nie zawsze, mieć przerwy, np. mogą być podane tak: {{Code|3,10,15,..}}. Można podać, czy oczekujemy wartości tylko niepustych. Można wskazać, czy liczba elementów jest mnoga (większa od {{Code|1}}, ale równa {{Code|2}}, w tym przypadku, a jeżeli nie jest taka, to zrzucony wynik jest {{Code|0}}, {{Code|1}}, ale nie {{Code|2}}). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówNienazwanychTablicy"]=function(tabela, wliczac,mnoga)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela, na którym operujemy. | 2 = {{Code|wliczac}} | _2 = Czy szukamy niepuste elementy numerowane tabeli, ma wartosć nieodpowiadająca {{Code|false}}, | 3 = {{Code|mnoga}} | _3 = Czy liczba tych numerowanych elementów jest mnoga, wartość jak powyżej. }} Funkcja z użytym parametrem {{Code|mnoga}} z wartością {{Code|true}} jest taka, że zawsze zwracana jest wartość {{Code|2}} przez nią. Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={[2]="nazwa1",[10]="nazwa2",[15]="nazwa3",[18]="nazwa4",}; local parametry_modul=require("Module:Parametry"); local liczba_elementow_nienazwanych_tablicy=parametry_modul["LiczbaElementówNienazwanychTablicy"](tabela,true,false); </syntaxhighlight> Wynik tej funkcji jest {{Code|4}}, bo taka jest liczba parametrów nienazwanych, ale nie numerowanych. Powyższe wywołanie liczy liczbę parametrów nienazwanych niepustych. == {{Code|p["LiczbaParametrówNienazwanychSzablonu"]}} == Funkcja wywoływana w ramce w wikikodzie, wykorzystująca funkcję z definicji: {{Code|{{sr|#p["LiczbaElementówNienazwanychTablicy"]|p=Parametry}}}}, i robiąca to samo, co ona, tylko wykorzystywana na innym poziomie, tzn. jako wywołana ramka w szablonie, a nie powinna być uruchamiana w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaParametrówNienazwanychSzablonu"]=function(frame)...end; </syntaxhighlight> Parametrami funkcji tablicy ramki, odpowiedniki parametrów: {{Code|wliczac}} i {{Code|mnoga}} funkcji wykorzystywanej z definicji, są kolejno: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy szukamy niepuste elementy numerowane parametrów szablonu, w którym ta ramka została wywołana, w postaci tej funkcji, jeżeli ten argument niepusty. | 2 = {{Code|mnoga}} | _2 = Czy liczba takich wyszukań jest mnoga, jeżeli niepusty. }} Odpowiednikiem parametru {{Code|tabela}} jest: {{OpisParametrów | 1 = {{Code|frame:getParent().args}} | _1 = Parametry szablonu rodzica, policzona za pomocą tablicy ramki, jej funkcji, tablicy transportu. }} Funkcje wywołuje się w ramce w szablonie, jako dziecko, w postaci, np., gdy rozważamy parametry niepuste szablonu, z ustawieniem parametrem mnogości, wtedy funkcja ta powinna zwrócić liczbę {{Code|0}}, {{Code|1}} lub {{Code|2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|LiczbaParametrówNienazwanychSzablonu|niepuste=tak|mnoga=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|2=nazwa1|10=nazwa2|15=nazwa3|18=nazwa4}} </syntaxhighlight> Powyższe wywołanie liczy liczbę parametrów nienazwanych niepustych w liczbie mnogie, tzn. gdy ten parametr jest podany. Powyższa funkcja zrzuca wynik wyliczony, ze względu na to ustawienie w dziecku, jako liczbę {{Code|2}}, a nie {{Code|4}}. == {{Code|p["LiczbaElementówTablicy"]}} == Funkcja liczy liczbę nienazwanych (numerowanych) i nazwanych elementów tablicy. Można podać, czy oczekujemy wartości tylko niepustych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówTablicy"]=function(tabela,wliczac)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela do rozważań na problemy tej funkcji. | 2 = {{Code|wliczac}} | _2 = Czy ma liczyć liczbę elementów niepustych, jeżeli {{Code|true}}. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={ 10, nazwa = 5, parametr = "tak", }; local parametry_modul=require("Module:Parametry"); local liczba_elementow_tablicy=parametry_modul["LiczbaElementówTablicy"](tabela,true); </syntaxhighlight> Policzona liczba elementów {{Code|liczba_elementow_tablicy}} jest {{Code|3}}. Powyższe wywołanie liczy liczbę wszystkich parametrów niepustych w podanej tablicy. == {{Code|p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]}} == Funkcja liczy liczbę nienazwanych elementów od {{Code|1}}, ale mogą zaczynać się od pewnej liczby, mogą między sobą mieć przerwy, np.: {{Code|3,10,15,..}}, liczbę elementów tablicy odpowiednio skonstruowanych, charakterystycznych dla tej funkcji. Można podać, czy oczekujemy wartości tylko niepustych. Można wskazać, czy liczba elementów jest mnoga (większa od {{Code|1}}, wtedy ta funkcja zwraca wynik {{Code|2}}, a jeżeli nie jest taka, to wtedy zwracany wynik jest {{Code|0}} lub {{Code|1}}). Należy też podać niepusty przedrostek, niebędący liczbą zakodowaną w łańcuchu znakowym. Należy wskazać w funkcji, czy oczekujemy formy numerkowe, ale nie muszą to być liczby, ale mogą być one łańcuchami znakowymi, a jeżeli nie są takie, to one muszą być w postaci czystych liczb. Definicja form numerkowych jest taka, że one po przekształceniu na liczbę funkcją {{LzLua|tonumber}} stają się normalnymi liczbami {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac,czy_formy_numerkowe)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela, na którym operujemy. | 2 = {{Code|przedrostek}} | _2 = Niepusty, niebędący liczbą łańcuchową, przedrostek, który ma być przed liczbą. | 3 = {{Code|wliczac}} | _3 = Czy szukamy niepuste elementy numerowane tabeli. | 4 = {{Code|czy_formy_numerkowe}} | _4 = Czy wyszukiwane liczby przy pomocy funkcji {{Code|pairs}}, czy są czystymi liczbami {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. }} Funkcja liczy liczbę parametrów nienazwanych i nazwanych, ale z podanym przedrostkiem, lub nie, skonstruowanych z tych pierwszych. Przykłady użycia: <syntaxhighlight lang="lua"> local tabela={[2]="wartość1", [10]="wartosć2", [15]="wartość3", ["18"]="wartość4", ["nazwa2"] = "wartosc5", ["nazwa10"] = "wartość6", ["nazwa18"] = "wartość7", }; local parametry_modul=require("Module:Parametry"); local liczba_elementow_nienazwanych_z_przedrostkiem_lub_nie_w_tablicy=parametry_modul["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"](tabela,"nazwa",true,false); </syntaxhighlight> Funkcja w postaci wartości {{Code|liczba_elementow_nienazwanych_z_przedrostkiem_lub_nie_w_tablicy}} zwróci liczbę {{Code|6}}, a nie {{Code|7}}, bo element {{Code|["18"]{{=}}"wartość4"}}, a w niej łańcuch znakowy klucza jest jedynie formą numerkową, a nie liczbą. Powyższe wywołanie liczy liczbę parametrów nazwanych niepustych z przedrostkiem, lub czysto numerkowych - nienazwanych, ale nie również form numerkowych (szeregi), czyli zapisanych w postaci łańcucha znaków, nie jako typu {{Code|number}} wskazaną przez obudowaną funkcję {{LzLua|type}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gm0l8sov6tynt0duyubb07vjnzjo3ii Wikibooks:Moduły/Parametry/Tom II 4 63968 555633 553328 2026-09-11T05:10:24Z Persino 2851 555633 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje liczenia minimalnej i maksymalnej wartości w tabeli lub szablonie. == {{Code|p.MaksymalnaLiczbaParametruNienazwanegoSzablonu}} == Funkcja wywołana w ramce szablonu, który może nawet liczyć, i nie tylko, parametry niepuste, jeżeli to w nim wskazano w ramce dziecka szablonu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.MaksymalnaLiczbaParametruNienazwanegoSzablonu=function(frame)...end; </syntaxhighlight> Funkcja ma parametry, które przyjmuje, jako parametry dziecka ramki, też zbiera zmienne rodzica: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Niepuste, wtedy w liczy tylko elementy szablonu niepuste, tylko je wykorzystuje do rozważań. | 2 = {{Code|frame:getParent().args}} | _2 = Parametry szablonu rodzica dziecka ramki, w którym on został wywołany. }} Przykład wywołania ramki dziecka w szablonie rodzica jest: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|MaksymalnaLiczbaParametruNienazwanegoSzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|4=nazwa1|5=nazwa2|10=nazwa3|20=nazwa4}} </syntaxhighlight> Szablon zrzuci wynik {{Code|20}}, ponieważ ta nazwa (klucz) parametru jest największa. Funkcja wykorzystuje do swojego działania: {{Code|{{sr|#p.MaksymalnaLiczbaParametruNienazwanegoTablicy|p=Parametry}}}}, który robi to samo, co podana funkcja, tylko jest inne obrazowanie zmiennych. == {{Code|p.MaksymalnaLiczbaParametruNienazwanegoTablicy}} == Funkcja liczy maksymalny numer parametru nienazwanego, określony liczbą, mający w sobie, niekoniecznie, przerwy, nie zawsze zaczynający się od jedynki. Jeżeli funkcja nie znalazłażadnego takiego elementu, to zwracana wtedy jest wartość {{Code|0}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.MaksymalnaLiczbaParametruNienazwanegoTablicy=function(tabela, wliczac)...end; </syntaxhighlight> Funkcja ma zmienne, które przyjmuje w wywołaniu funkcyjnym: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Rozważana tabela, podana jako pierwszy argument funkcji. | 2 = {{Code|wliczac}} | _2 = Czy ma uwzględniać w swoich rozważaniach, podczas liczenia podanej tabeli, w nim elementy niepuste. }} Przykładem wywołania jest dla parametrów niepustych tablicy: <syntaxhighlight lang="lua"> local tabela={[4]="nazwa1",[5]="nazwa2",[10]="nazwa3",[20]="nazwa4",}; local parametry_modul=require("Module:Parametry"); local maksymalna_wartosc_parametru_nienazwanego=parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela,true); </syntaxhighlight> Funkcja zwróci wynik o wartości, w parametrze: {{Code|maksymalna_wartosc_parametru_nienazwanego}} równej: {{Code|20}}. == {{Code|p.MinimalnaLiczbaParametruNienazwanegoSzablonu}} == Funkcja wywołana w ramce szablonu, który może nawet liczyć, i nie tylko, parametry niepuste, jeżeli to w nim wskazano w ramce dziecka szablonu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.MaksymalnaLiczbaParametruNienazwanegoSzablonu=function(frame)...end; </syntaxhighlight> Funkcja ma parametry, które przyjmuje jako parametry dziecka ramki, też zbiera zmienne rodzica: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Niepuste, wtedy w liczy tylko elementy szablonu niepuste, tylko je wykorzystuje do rozważań. | 2 = {{Code|frame:getParent().args}} | _2 = parametry szablonu rodzica dziecka ramki, w której on został wywołany. }} Przykład wywołania ramki dziecka w szablonie rodzica jest: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|MinimalnaLiczbaParametruNienazwanegoSzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|4=nazwa1|5=nazwa2|150nazwa3|20=nazwa4}} </syntaxhighlight> Szablon zrzuci liczbę {{Code|4}}, ponieważ ta nazwa parametru najmniejsza. Funkcja wykorzystuje do swojego działania: {{Code|{{sr|#p.MinimalnaLiczbaParametruNienazwanegoTablicy|p=Parametry}}}}, który robi to samo, co podana funkcja, tylko jest inne obrazowanie zmiennych. == {{Code|p.MinimalnaLiczbaParametruNienazwanegoTablicy}} == Funkcja liczy minimalny numer parametru nienazwanego, określony liczbą, mający w sobie, niekoniecznie mający przerwy, nie zawsze zaczynający się od jedynki, nie zawsze zaczynający się jedynki. Jeżeli funkcja nie znalazłażadnego takiego elementu, to zwracana wtedy jest wartość {{Code|1}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.MinimalnaLiczbaParametruNienazwanegoTablicy=function(tabela, wliczac)...end; </syntaxhighlight> Funkcja ma zmienne, które przyjmuje w wywołaniu funkcyjnym: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Rozważana tabela, podana jako pierwszy argument funkcji. | 2 = {{Code|wliczac}} | _2 = Czy ma uwzględniać w swoich rozważaniach, podczas liczenia podanej tabeli, jego elementy niepuste. }} Przykładem wywołania jest dla parametrów niepustych tablicy: <syntaxhighlight lang="lua"> local tabela={[4]="nazwa1",[5]="nazwa2",[10]="nazwa3",[20]="nazwa4",}; local parametry_modul=require("Module:Parametry"); local minimalna_wartosc_parametru_nienazwanego=parametry_modul.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,true); </syntaxhighlight> Funkcja zwróci wynik o wartości, w parametrze: {{Code|minimalna_wartosc_parametru_nienazwanego}} równej: {{Code|4}}. == {{Code|p.MinimalnyIMaksymalnyNumerPodstawyParametruTabeli}} == Funkcja liczy minimalny i maksymalny numer parametru nazwanego, o pewnej podanej podstawie, numerowany liczbą po spacji, będąca liczbą naturalną, lub bez numerka, numerowanie tych argumentów może mieć przerwy, może liczyć jako od {{Code|0}} lub {{Code|1}}, w zależności od drugiego argumentu. Jeśli funkcja nie znalazła zadnego takiego elementu, to wtedy dwie wartości, zwracane przez tę funkcję, minimalna przyjmuje wartość {{Code|1}}, a maksymalna {{Code|0}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.MinimalnyIMaksymalnyNumerPodstawyParametruTabeli(tabela,podstawa_parametru, czy_od_zera)...end; </syntaxhighlight> Funkcja ma zmienne, które przyjmuje w wywołaniu funkcyjnym: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Rozważana tabela, podana jako pierwszy argument funkcji. | 2 = {{Code|podstawa_parametru}} | _2 = Podstawa parametrów numerowanych, np. mogący być: {{Code|nazwa 1}}. | 3 = {{Code|czy_od_zera}} | _3 = Czy parametr bez numerka ma liczyć jako {{Code|0}}, jeśli {{Code|true}}, w przeciwnym wypadku jest liczony on jako {{Code|1}}. }} Przykładem wywołania jest dla parametrów o nazwach niepustych w tablicy: <syntaxhighlight lang="lua"> local tabela={["nazwa 4"]="tak",["nazwa 5"]="tak",["nazwa 10"]="tak",["nazwa 20"]="tak",}; local parametry_modul=require("Module:Parametry"); local minimalna_wartosc,maksymalna_wartosc=parametry_modul.MinimalnyIMaksymalnyNumerPodstawyParametruTabeli(tabela,"nazwa",false); </syntaxhighlight> Funkcja zwróci wynik o wartości, w parametrach: {{Code|minimalna_wartosc}} i {{Code|maksimum_wartosc}}, mający kolejno wartości liczbowe: {{Code|4}} i {{Code|20}}. Jest to minmalna i maksymalna wartość dla liczb po spacji siedzące przy podstawach parametrów, która jest podana w parametrze drugim funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6bdf3cnjlohgt75iz7rqo7esl3yy1ky Wikibooks:Moduły/Parametry/Tom III 4 63969 555634 553029 2026-09-11T05:16:50Z Persino 2851 555634 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje, liczące, czy są takie parametry. Poniższe funkcje zwracają {{Code|tak}} w ramce szablony, w przypadku wersji szablonowych, a typowo funkcyjnych {{Code|true}}, gdy coś znaleziono, gdy nic, to wartość języka {{lpg|Lua}}, czyli: {{Code|nil}}, w drugim przypadku, co odpowiada w odpowiednikach uruchamianych w ramce szablonu wartości pustej {{Code|""}}, lub {{Code|false}}, w tym drugim przypadku. == {{Code|p["CzySąParametryNumerowaneSzablonu"]}} == Funkcja służy do wskazania, czy w parametrach szablonu rodzica, w której jest uruchomiona ta funkcja w postaci ramki, są elementy numerowane, tzn. od {{Code|1}} bez przerw, ale z końcem, lub do jej pierwszej. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąParametryNumerowaneSzablonu"] = function(frame)...end; </syntaxhighlight> Parametry ramki szablonu, sprawdzające, czy są elementy numerowane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy ma uwzględniać parametry tylko niepuste. | 2 = {{Code|frame:getParent().args}} | _2 = Tablica do rozważań przez funkcję biblioteczną. }} Przykładem wywołania jest, gdy rozważamy parametry niepuste szablonu, ewentualnie niepuste: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzySąParametryNumerowaneSzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1|nazwa2|nazwa3}} </syntaxhighlight> Szablon zwróci wynik {{Code|tak}}, ponieważ istnieją jakieś parametry numerowane. Funkcja wykorzystuje funkcję: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, do obsługi tej funkcji ramki, którą wywołuje się w wikikodzie. == {{Code|p["CzySąElementyNumerowaneTablicy"]}} == Funkcja służy do wskazania, czy w tablicy {{Code|tabela}} są elementy numerowane tablicy, tzn. numerowane od {{Code|1}} bez przerw, ale z końcem, lub do pierwszej przerwy. Można wskazać, są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)...end; </syntaxhighlight> Parametry funkcji, sprawdzające, czy są elementy numerowane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|tabela}} - Tabela do rozważań. | 2 = {{Code|wliczać}} - czy ma uwzględniać parametry niepuste w tabeli {{Code|tabela}}. }} Wywołanie przykładowej tej funkcji jest: <syntaxhighlight lang="lua"> local tabela={"nazwa1", "nazwa2", "nazwa3", }; local parametry_modul=require("Module:Parametry"); local czy_sa_elementu_numerowane_tablicy=parametry_modul["CzySąElementyNumerowaneTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik {{Code|true}}, bo istnieją jakieś elementy numerowane tabeli {{Code|tabela}}. == {{Code|p["CzySąParametryNienazwaneSzablonu"]}} == Funkcja służy do wskazania, czy w parametrach szablonu rodzica, w której jest uruchomiona ta funkcja w postaci ramki, są elementy nienazwane, tzn., niekoniecznie od {{Code|1}} mogący być z przerwami, ale z końcem. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowwa funkcji: <syntaxhighlight lang="lua"> p["CzySąParametryNienazwaneSzablonu"] = function(frame)...end; </syntaxhighlight> Parametry ramki szablonu, sprawdzające, czy są elementy nienazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy ma uwzględniać parametry tylko niepuste. | 2 = {{Code|frame:getParent().args}} | _2 = tablica do rozważań przez funkcję biblioteczną. }} Przykładem wywołania jest, gdy rozważamy parametry niepuste szablonu, ewentualnie niepuste: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzySąParametryNienazwaneSzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|3=nazwa1|5=nazwa2|8=nazwa3}} </syntaxhighlight> Funkcja ramki w szablonie zwróci wynik {{Code|tak}}, ponieważ ma on jakieś parametry nienazwane, a nienumerowane (nie zaczyna się od {{Code|1}}). Funkcja wykorzystuje funkcję: {{Code|{{sr|#p["CzySąElementyNienazwaneTablicy"]|p=Parametry}}}}, do obsługi tej funkcji ramki, którą wywołuje się w wikikodzie. == {{Code|p["CzySąElementyNienazwaneTablicy"]}} == Funkcja służy do wskazania, czy w tablicy {{Code|tabela}} są elementy nienazwane, tzn. nienazwane, niekoniecznie od {{Code|1}}, mogący być z przerwami, ale z końcem. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)...end; </syntaxhighlight> Parametry funkcji, sprawdzające, czy są elementy nienazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela do rozważań. | 2 = {{Code|wliczać}} | _2 = Czy ma uwzględniać parametry niepuste w tabeli {{Code|tabela}}. }} Wywołanie przykładowej tej funkcji jest: <syntaxhighlight lang="lua"> local tabela={[3]="nazwa1", [5]="nazwa2", [8]="nazwa3", }; local parametry_modul=require("Module:Parametry"); local czy_sa_elementu_nienazwane=parametry_modul["CzySąElementyNienazwaneTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik {{Code|true}}, ponieważ ma on jakieś parametry nienazwane tablicy {{Code|tabela}}, a nienumerowane (nie zaczyna się od {{Code|1}}). == {{Code|p["CzySąParametryNazwaneSzablonu"]}} == Funkcja służy do wskazania, czy w parametrach szablonu rodzica, w której jest uruchomiona ta funkcja w postaci ramki, są elementy nazwane, tzn. elementy niemający klucza w postaci liczby naturalnej. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąParametryNazwaneSzablonu"] = function(frame)...end; </syntaxhighlight> Parametry ramki szablonu, sprawdzające, czy są elementy nazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy ma uwzględniać parametry tylko niepuste. | 2 = {{Code|frame:getParent().args}} | _2 = tablica do rozważań przez funkcję biblioteczną. }} Przykładem wywołania, gdy rozważamy parametry niepuste szablonu, ewentualnie niepuste, jest: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzySąParametryNumerowaneSzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=wartość1|10=wartość2|15=wartość3}} </syntaxhighlight> Szablon zwróci wynik {{Code|tak}}, ponieważ ma on jakieś parametry nazwane. Funkcja wykorzystuje funkcję: {{Code|{{sr|#p["CzySąElementyNazwaneTablicy"]|p=Parametry}}}}, do obsługi tej funkcji ramki, którą wywołuje się w wikikodzie. == {{Code|p["CzySąElementyNazwaneTablicy"]}} == Funkcja służy do wskazania, czy w tablicy {{Code|tabela}}, są elementy nazwane, tzn. niemający klucza w postaci liczby naturalnej. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)...end; </syntaxhighlight> Parametry funkcji, sprawdzające, czy są elementy nazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela do rozważań. | 2 = {{Code|wliczać}} | _2 = Czy ma uwzględniać parametry niepuste w tabeli {{Code|tabela}}. }} Wywołanie przykładowej tej funkcji jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]="wartość1", ["nazwa2"]="wartość2", ["nazwa3"]="wartośc3", }; local parametry_modul=require("Module:Parametry"); local czy_sa_elementu_nazwane=parametry_modul["CzySąElementyNazwaneTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik {{Code|true}}, ponieważ są jakieś elementy nazwane tabeli {{Code|tabela}}. == {{Code|p["CzySąParametrySzablonu"]}} == Funkcja służy do wskazania, czy w parametrach szablonu rodzica, w której jest uruchomiona ta funkcja w postaci ramki, są elementy nienazwane lub nazwane, tzn. elementy niemający klucza w postaci liczby naturalnej i łańcuchowej. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąParametrySzablonu"] = function(frame)...end; </syntaxhighlight> Parametry ramki szablonu, sprawdzające, czy są elementy nienazwane lub nazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy ma uwzględniać parametry tylko niepuste. | 2 = {{Code|frame:getParent().args}} | _2 = tablica do rozważań przez funkcję biblioteczną. }} Przykładem wywołania, gdy rozważamy parametry niepuste szablonu, ewentualnie niepuste, jest: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzySąParametrySzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=wartość1|nazwa2=wartość2|nazwa3=wartość4|2=nazwa4|6=nazwa6}} </syntaxhighlight> Funkcja ramki szablonu zwroci wynik {{Code|tak}}, ponieważ ma on jakieś parametry. Funkcja wykorzystuje funkcję: {{Code|{{sr|#p["CzySąElementyTablicy"]|p=Parametry}}}}, do obsługi ramki w szablonie, którą wywołuje się w wikikodzie. == {{Code|p["CzySąElementyTablicy"]}} == Funkcja służy do wskazania, czy w parametrach tabeli {{Code|tabela}} są elementy nienazwane lub nazwane, tzn. elementy niemający klucza w postaci liczby naturalnej i łańcuchowej. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąElementyTablicy"]=function(tabela,wliczac)...end; </syntaxhighlight> Parametry funkcji, sprawdzające, czy są elementy nienazwane lub nazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela do rozważań. | 2 = {{Code|wliczać}} | _2 = Czy ma uwzględniać parametry niepuste w tabeli {{Code|tabela}}. }} Wywołanie przykładowej tej funkcji jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]="wartość1", ["nazwa2"]="wartość2", ["nazwa3"]="wartość3", [2]="nazwa4", [6]="nazwa5", }; local parametry_modul=require("Module:Parametry"); local czy_sa_elementu_nienazwane_lub_nazwane=parametry_modul["CzySąElementyTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik {{Code|true}}, ponieważ ta tabela {{Code|tabela}} ma jakieś elementy. == {{Code|p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"]}} == Funkcja sprawdza, czy element numerowany jest od jedynki, i czy jest on jeden wśród parametrów nienazwanych w parametrach szablonu rodzica, w której jest wywołana ta funkcja ramki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)...end; </syntaxhighlight> Parametry funkcji sprawdzające, czy jest jeden element numerowany funkcji: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Taki element nie może być pusty. | 2 = {{Code|frame:getParent().args}} |_2 = Tabela ramki szablonu rodzica, wśród, w której następuje to wyszukiwanie. }} Przykładem wywołania, gdy rozważamy parametry niepuste szablonu, ewentualnie niepuste, jest: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzyCoNajwyżejJedenNumerowanyParametrSzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać w wynikach poniżej. Przykład pierwszy: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=5|1=nazwa2|nazwa3=6}} </syntaxhighlight> Szablon zrzuci wynik {{Code|tak}}, bo liczba elementów numerowanych jest {{Code|1}}, i nie ma dalszych elementów nienazwanych. Przykład drugi: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=5|1=nazwa2|nazwa3=6|3=nazwa4}} </syntaxhighlight> Szablon zrzuci wynik równy wartości pustej {{Code|""}}, bo są dwa elementy nienazwane. Przykład trzeci: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=5|2=nazwa2|nazwa3=6|4=nazwa4}} </syntaxhighlight> Szablon zrzuci wynik równy wartości pustej {{Code|""}}, bo są dwa elementy nienazwane, ale one nie zaczynają się od {{Code|1}}, dlatego wynik jest przede wszystkim taki. Przykład czwarty: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=5|2=nazwa2|nazwa3=6}} </syntaxhighlight> Szablon zrzuci wynik równy wartości pustej {{Code|""}}, bo nie ma parametrów numerowanych zaczynających się od liczby {{Code|1}}. Funkcja wykorzystuje funkcję: {{Code|{{sr|#p["CzyCoNajwyżejJedenNumerowanyElementTablicy"]|p=Parametry}}}}, do obsługi tej funkcji ramki, którą wywołuje się w wikikodzie. == {{Code|p["CzyCoNajwyżejJedenNumerowanyElementTablicy"]}} == Funkcja sprawdza, czy element numerowany jest od jedynki, i czy jest on jeden wśród parametrów nienazwanych w podanej tabeli. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)...end; </syntaxhighlight> Parametry funkcji, sprawdzające, czy jest jeden element numerowany funkcji: {{OpisParametrów | 1 = {{Code|args}} | _1 = Tabela ramki szablonu rodzica, wśród, w której następuje to wyszukiwanie. | 2 = {{Code|wliczac}} | _2 = taki element nie może być pusty. }} Wywołanie przykładowej tej funkcji, pierwsze, jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]=5, [1]="nazwa2", ["nazwa3"]=6,}; local parametry_modul=require("Module:Parametry"); local czy_jest_co_najwyzej_jeden_element_numerowany=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik {{Code|true}}, bo liczba elementów numerowanych jest {{Code|1}}, i nie ma dalszych elementów nienazwanych. Wywołanie przykładowej tej funkcji, drugie, jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]=5, [1]="nazwa2", ["nazwa3"]=6, [3]="nazwa4",}; local parametry_modul=require("Module:Parametry"); local czy_jest_co_najwyzej_jeden_element_numerowany=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik równy wartości {{Code|false}}, bo są dwa elementy nienazwane. Wywołanie przykładowej tej funkcji, trzecie, jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]=5, [2]="nazwa2", ["nazwa3"]=6, [4]="nazwa4",}; local parametry_modul=require("Module:Parametry"); local czy_jest_co_najwyzej_jeden_element_numerowany=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik równy wartości {{Code|false}}, bo nie ma pierwszego elementu numerowanego, tzn. dla parametru {{Code|tabela[1]}}, ale, są dwa elementy nienazwane. Wywołanie przykładowej tej funkcji, czwarte, jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]=5, [2]="nazwa2", ["nazwa3"]=6, }; local parametry_modul=require("Module:Parametry"); local czy_jest_co_najwyzej_jeden_element_numerowany=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik równy wartości {{Code|false}}, bo nie ma pierwszego elementu numerowanego, tzn. dla parametru {{Code|tabela[1]}}, mimo, że jest jeden element nienazwany. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 176jjo3ikwg3kt9tdezfmkj8mkip8ra 555635 555634 2026-09-11T05:17:23Z Persino 2851 /* {{Code|p["CzySąElementyNumerowaneTablicy"]}} */ 555635 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje, liczące, czy są takie parametry. Poniższe funkcje zwracają {{Code|tak}} w ramce szablony, w przypadku wersji szablonowych, a typowo funkcyjnych {{Code|true}}, gdy coś znaleziono, gdy nic, to wartość języka {{lpg|Lua}}, czyli: {{Code|nil}}, w drugim przypadku, co odpowiada w odpowiednikach uruchamianych w ramce szablonu wartości pustej {{Code|""}}, lub {{Code|false}}, w tym drugim przypadku. == {{Code|p["CzySąParametryNumerowaneSzablonu"]}} == Funkcja służy do wskazania, czy w parametrach szablonu rodzica, w której jest uruchomiona ta funkcja w postaci ramki, są elementy numerowane, tzn. od {{Code|1}} bez przerw, ale z końcem, lub do jej pierwszej. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąParametryNumerowaneSzablonu"] = function(frame)...end; </syntaxhighlight> Parametry ramki szablonu, sprawdzające, czy są elementy numerowane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy ma uwzględniać parametry tylko niepuste. | 2 = {{Code|frame:getParent().args}} | _2 = Tablica do rozważań przez funkcję biblioteczną. }} Przykładem wywołania jest, gdy rozważamy parametry niepuste szablonu, ewentualnie niepuste: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzySąParametryNumerowaneSzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1|nazwa2|nazwa3}} </syntaxhighlight> Szablon zwróci wynik {{Code|tak}}, ponieważ istnieją jakieś parametry numerowane. Funkcja wykorzystuje funkcję: {{Code|{{sr|#p["CzySąElementyNumerowaneTablicy"]|p=Parametry}}}}, do obsługi tej funkcji ramki, którą wywołuje się w wikikodzie. == {{Code|p["CzySąElementyNumerowaneTablicy"]}} == Funkcja służy do wskazania, czy w tablicy {{Code|tabela}} są elementy numerowane tablicy, tzn. numerowane od {{Code|1}} bez przerw, ale z końcem, lub do pierwszej przerwy. Można wskazać, są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)...end; </syntaxhighlight> Parametry funkcji, sprawdzające, czy są elementy numerowane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela do rozważań. | 2 = {{Code|wliczać}} | _2 = Czy ma uwzględniać parametry niepuste w tabeli {{Code|tabela}}. }} Wywołanie przykładowej tej funkcji jest: <syntaxhighlight lang="lua"> local tabela={"nazwa1", "nazwa2", "nazwa3", }; local parametry_modul=require("Module:Parametry"); local czy_sa_elementu_numerowane_tablicy=parametry_modul["CzySąElementyNumerowaneTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik {{Code|true}}, bo istnieją jakieś elementy numerowane tabeli {{Code|tabela}}. == {{Code|p["CzySąParametryNienazwaneSzablonu"]}} == Funkcja służy do wskazania, czy w parametrach szablonu rodzica, w której jest uruchomiona ta funkcja w postaci ramki, są elementy nienazwane, tzn., niekoniecznie od {{Code|1}} mogący być z przerwami, ale z końcem. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowwa funkcji: <syntaxhighlight lang="lua"> p["CzySąParametryNienazwaneSzablonu"] = function(frame)...end; </syntaxhighlight> Parametry ramki szablonu, sprawdzające, czy są elementy nienazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy ma uwzględniać parametry tylko niepuste. | 2 = {{Code|frame:getParent().args}} | _2 = tablica do rozważań przez funkcję biblioteczną. }} Przykładem wywołania jest, gdy rozważamy parametry niepuste szablonu, ewentualnie niepuste: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzySąParametryNienazwaneSzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|3=nazwa1|5=nazwa2|8=nazwa3}} </syntaxhighlight> Funkcja ramki w szablonie zwróci wynik {{Code|tak}}, ponieważ ma on jakieś parametry nienazwane, a nienumerowane (nie zaczyna się od {{Code|1}}). Funkcja wykorzystuje funkcję: {{Code|{{sr|#p["CzySąElementyNienazwaneTablicy"]|p=Parametry}}}}, do obsługi tej funkcji ramki, którą wywołuje się w wikikodzie. == {{Code|p["CzySąElementyNienazwaneTablicy"]}} == Funkcja służy do wskazania, czy w tablicy {{Code|tabela}} są elementy nienazwane, tzn. nienazwane, niekoniecznie od {{Code|1}}, mogący być z przerwami, ale z końcem. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)...end; </syntaxhighlight> Parametry funkcji, sprawdzające, czy są elementy nienazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela do rozważań. | 2 = {{Code|wliczać}} | _2 = Czy ma uwzględniać parametry niepuste w tabeli {{Code|tabela}}. }} Wywołanie przykładowej tej funkcji jest: <syntaxhighlight lang="lua"> local tabela={[3]="nazwa1", [5]="nazwa2", [8]="nazwa3", }; local parametry_modul=require("Module:Parametry"); local czy_sa_elementu_nienazwane=parametry_modul["CzySąElementyNienazwaneTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik {{Code|true}}, ponieważ ma on jakieś parametry nienazwane tablicy {{Code|tabela}}, a nienumerowane (nie zaczyna się od {{Code|1}}). == {{Code|p["CzySąParametryNazwaneSzablonu"]}} == Funkcja służy do wskazania, czy w parametrach szablonu rodzica, w której jest uruchomiona ta funkcja w postaci ramki, są elementy nazwane, tzn. elementy niemający klucza w postaci liczby naturalnej. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąParametryNazwaneSzablonu"] = function(frame)...end; </syntaxhighlight> Parametry ramki szablonu, sprawdzające, czy są elementy nazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy ma uwzględniać parametry tylko niepuste. | 2 = {{Code|frame:getParent().args}} | _2 = tablica do rozważań przez funkcję biblioteczną. }} Przykładem wywołania, gdy rozważamy parametry niepuste szablonu, ewentualnie niepuste, jest: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzySąParametryNumerowaneSzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=wartość1|10=wartość2|15=wartość3}} </syntaxhighlight> Szablon zwróci wynik {{Code|tak}}, ponieważ ma on jakieś parametry nazwane. Funkcja wykorzystuje funkcję: {{Code|{{sr|#p["CzySąElementyNazwaneTablicy"]|p=Parametry}}}}, do obsługi tej funkcji ramki, którą wywołuje się w wikikodzie. == {{Code|p["CzySąElementyNazwaneTablicy"]}} == Funkcja służy do wskazania, czy w tablicy {{Code|tabela}}, są elementy nazwane, tzn. niemający klucza w postaci liczby naturalnej. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)...end; </syntaxhighlight> Parametry funkcji, sprawdzające, czy są elementy nazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela do rozważań. | 2 = {{Code|wliczać}} | _2 = Czy ma uwzględniać parametry niepuste w tabeli {{Code|tabela}}. }} Wywołanie przykładowej tej funkcji jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]="wartość1", ["nazwa2"]="wartość2", ["nazwa3"]="wartośc3", }; local parametry_modul=require("Module:Parametry"); local czy_sa_elementu_nazwane=parametry_modul["CzySąElementyNazwaneTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik {{Code|true}}, ponieważ są jakieś elementy nazwane tabeli {{Code|tabela}}. == {{Code|p["CzySąParametrySzablonu"]}} == Funkcja służy do wskazania, czy w parametrach szablonu rodzica, w której jest uruchomiona ta funkcja w postaci ramki, są elementy nienazwane lub nazwane, tzn. elementy niemający klucza w postaci liczby naturalnej i łańcuchowej. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąParametrySzablonu"] = function(frame)...end; </syntaxhighlight> Parametry ramki szablonu, sprawdzające, czy są elementy nienazwane lub nazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Czy ma uwzględniać parametry tylko niepuste. | 2 = {{Code|frame:getParent().args}} | _2 = tablica do rozważań przez funkcję biblioteczną. }} Przykładem wywołania, gdy rozważamy parametry niepuste szablonu, ewentualnie niepuste, jest: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzySąParametrySzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=wartość1|nazwa2=wartość2|nazwa3=wartość4|2=nazwa4|6=nazwa6}} </syntaxhighlight> Funkcja ramki szablonu zwroci wynik {{Code|tak}}, ponieważ ma on jakieś parametry. Funkcja wykorzystuje funkcję: {{Code|{{sr|#p["CzySąElementyTablicy"]|p=Parametry}}}}, do obsługi ramki w szablonie, którą wywołuje się w wikikodzie. == {{Code|p["CzySąElementyTablicy"]}} == Funkcja służy do wskazania, czy w parametrach tabeli {{Code|tabela}} są elementy nienazwane lub nazwane, tzn. elementy niemający klucza w postaci liczby naturalnej i łańcuchowej. Można wskazać, czy są takie te elementy niepuste za pomocą dodatkowego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzySąElementyTablicy"]=function(tabela,wliczac)...end; </syntaxhighlight> Parametry funkcji, sprawdzające, czy są elementy nienazwane lub nazwane, ewentualnie niepuste: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela do rozważań. | 2 = {{Code|wliczać}} | _2 = Czy ma uwzględniać parametry niepuste w tabeli {{Code|tabela}}. }} Wywołanie przykładowej tej funkcji jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]="wartość1", ["nazwa2"]="wartość2", ["nazwa3"]="wartość3", [2]="nazwa4", [6]="nazwa5", }; local parametry_modul=require("Module:Parametry"); local czy_sa_elementu_nienazwane_lub_nazwane=parametry_modul["CzySąElementyTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik {{Code|true}}, ponieważ ta tabela {{Code|tabela}} ma jakieś elementy. == {{Code|p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"]}} == Funkcja sprawdza, czy element numerowany jest od jedynki, i czy jest on jeden wśród parametrów nienazwanych w parametrach szablonu rodzica, w której jest wywołana ta funkcja ramki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)...end; </syntaxhighlight> Parametry funkcji sprawdzające, czy jest jeden element numerowany funkcji: {{OpisParametrów | 1 = {{Code|niepuste}} | _1 = Taki element nie może być pusty. | 2 = {{Code|frame:getParent().args}} |_2 = Tabela ramki szablonu rodzica, wśród, w której następuje to wyszukiwanie. }} Przykładem wywołania, gdy rozważamy parametry niepuste szablonu, ewentualnie niepuste, jest: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzyCoNajwyżejJedenNumerowanyParametrSzablonu|niepuste=tak}} </syntaxhighlight> Szablon, w którym jest wywołane to przedstawienie, można napisać w wynikach poniżej. Przykład pierwszy: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=5|1=nazwa2|nazwa3=6}} </syntaxhighlight> Szablon zrzuci wynik {{Code|tak}}, bo liczba elementów numerowanych jest {{Code|1}}, i nie ma dalszych elementów nienazwanych. Przykład drugi: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=5|1=nazwa2|nazwa3=6|3=nazwa4}} </syntaxhighlight> Szablon zrzuci wynik równy wartości pustej {{Code|""}}, bo są dwa elementy nienazwane. Przykład trzeci: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=5|2=nazwa2|nazwa3=6|4=nazwa4}} </syntaxhighlight> Szablon zrzuci wynik równy wartości pustej {{Code|""}}, bo są dwa elementy nienazwane, ale one nie zaczynają się od {{Code|1}}, dlatego wynik jest przede wszystkim taki. Przykład czwarty: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=5|2=nazwa2|nazwa3=6}} </syntaxhighlight> Szablon zrzuci wynik równy wartości pustej {{Code|""}}, bo nie ma parametrów numerowanych zaczynających się od liczby {{Code|1}}. Funkcja wykorzystuje funkcję: {{Code|{{sr|#p["CzyCoNajwyżejJedenNumerowanyElementTablicy"]|p=Parametry}}}}, do obsługi tej funkcji ramki, którą wywołuje się w wikikodzie. == {{Code|p["CzyCoNajwyżejJedenNumerowanyElementTablicy"]}} == Funkcja sprawdza, czy element numerowany jest od jedynki, i czy jest on jeden wśród parametrów nienazwanych w podanej tabeli. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)...end; </syntaxhighlight> Parametry funkcji, sprawdzające, czy jest jeden element numerowany funkcji: {{OpisParametrów | 1 = {{Code|args}} | _1 = Tabela ramki szablonu rodzica, wśród, w której następuje to wyszukiwanie. | 2 = {{Code|wliczac}} | _2 = taki element nie może być pusty. }} Wywołanie przykładowej tej funkcji, pierwsze, jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]=5, [1]="nazwa2", ["nazwa3"]=6,}; local parametry_modul=require("Module:Parametry"); local czy_jest_co_najwyzej_jeden_element_numerowany=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik {{Code|true}}, bo liczba elementów numerowanych jest {{Code|1}}, i nie ma dalszych elementów nienazwanych. Wywołanie przykładowej tej funkcji, drugie, jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]=5, [1]="nazwa2", ["nazwa3"]=6, [3]="nazwa4",}; local parametry_modul=require("Module:Parametry"); local czy_jest_co_najwyzej_jeden_element_numerowany=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik równy wartości {{Code|false}}, bo są dwa elementy nienazwane. Wywołanie przykładowej tej funkcji, trzecie, jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]=5, [2]="nazwa2", ["nazwa3"]=6, [4]="nazwa4",}; local parametry_modul=require("Module:Parametry"); local czy_jest_co_najwyzej_jeden_element_numerowany=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik równy wartości {{Code|false}}, bo nie ma pierwszego elementu numerowanego, tzn. dla parametru {{Code|tabela[1]}}, ale, są dwa elementy nienazwane. Wywołanie przykładowej tej funkcji, czwarte, jest: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]=5, [2]="nazwa2", ["nazwa3"]=6, }; local parametry_modul=require("Module:Parametry"); local czy_jest_co_najwyzej_jeden_element_numerowany=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](tabela,true); </syntaxhighlight> Funkcja zrzuci wynik równy wartości {{Code|false}}, bo nie ma pierwszego elementu numerowanego, tzn. dla parametru {{Code|tabela[1]}}, mimo, że jest jeden element nienazwany. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> cyotfrswvty0gdn6zua4kk6v3gps8uo Wikibooks:Moduły/Parametry/Tom IV 4 63970 555636 553030 2026-09-11T05:22:50Z Persino 2851 555636 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przeedstawione funkcje do kopiowania tabel. == {{Code|p["KopiujTabelęŁańcuchów"]}} == Szablon przyjmuje tabelę: {{Code|args}}, którego elementem jest: {{Code|args.tabela}}, która jest tą właściwą tabelę, na której operujemy. Tabela {{Code|args}} posiada składowe do zastępowania poszczególnych elementów w niej, a jeżeli nie ma dla niego składowych szczególnych, to rzeczywiście kopiujemy tabelę łańcuchów, w przeciwnym wypadku, ją modyfikujemy. Z tak uzyskanej tabeli wyodrębniamy pewne elementy, modyfikujemy je, lub po pewnych operacjach odejmujemy, i tworzymy nowa tabelę. A jeśli w niej uzyskiwanej, to do niego dodawjemy elementy przedrostkiem i przyrostkiem, a podstawie tego tworzymy nową tabelę {{Code|args2}}, która zwracana jest przez tę funkcję. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["KopiujTabelęŁańcuchów"]=function(args)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} | _1 = Tablica, z główną tablicą, z elementami modyfikującymi elemenenty i je zmienione sprawdzające, a następnie dodające do nich przedrostki i przyrostki. }} Składowymi nazwanymi tabeli: {{Code|args}}, którym koniecznym elementem jest {{Code|args.tabela}}, a dalsze są opcjonalne, ale tylko co najmniej jeden z nich musi być podany, co na podstawie, z której tworzymy nową tabelkę, a więc: {{OpisParametrów | 1 = {{Code|args.tabela}} | _1 = Tabela, na której operujemy, na podstawie, z której tworzymy zwracaną tabelę {{Code|args2}}. | 2 = {{Code|args["wzór"][coś]}} lub {{Code|args["wzór wszystko"]}} | _2 = Wzór wyszukiwania, czy element wskazywany przez niego, ma to, | 3 = {{Code|args.podstawienie[coś]}} lub {{Code|args["podstawienie wszystko"]}} | _3 = Podstawienie, dokonane po znalezieniu elementu w elemencie według powyższego zaraz wzoru, i go zastąpienie. | 4 = {{Code|args["wzór 2"][coś]}} lub {{Code|args["wzór wszystko 2"]}} | _4 = Wzór wyodrębnienia pewnej części, jeśli element to ma po ewentualnym podstawieniu, a jeśli tego nie ma, to zwracane jest {{Code|nil}}, wtedy z tego elementu tabeli, dla której uzyskaliśmy tę wartość, nie jest przetwarzana jako element nowej tabeli {{Code|args2}}. | 5 = {{Code|args.przedrostek[coś]}} lub {{Code|args["przedrostek wszystko"]}} | _5 = Jeśli element istnieje wyszukany powyższym wzorem, to to jest przedrostek przed tym elementem. | 6 = {{Code|args.przyrostek[coś]}} lub {{Code|args["przyrostek wszystko"]}} | _6 = Jeśli element istnienie wyszukany powyższym wzorem, to to jest przyrostek po tym elemencie. }} Element {{Code|coś}} jest to jakiś klucz elementu tabeli {{Code|args.tabela}}. W powyższych alternatywach jest sprawdzany najpierw pierwszy element alternatywny, czy istnieje, a potem drugi. Za pomocą tego modyfikujemy tę tabelę lub usuwamy poszczególne jego elementy, tworząc tabelę {{Code|args2}}. Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul = require("Module:Parametry"); local tabela = { [1] = "wartość1", [2] = "wartość2", ["nazwa1"] = "wartość3", ["nazwa2"] = "wartość4", }; local args = { tabela = tabela, ["wzór wszystko"] = "%d+$", ["podstawienie wszystko"] = "_numer", ["wzór wszystko 2"] = "_numer$", ["przedrostek wszystko"] = "coś przed ", ["przyrostek wszystko"] = " coś po", }; local args2 = parametry_modul["KopiujTabelęŁańcuchów"](args); mw.logObject(args2, "Uzyskana tabela:" ); </syntaxhighlight> Uzyskaną tabelą jest w wyniku operacji według powyższego kodu, wyświetlaną przez funkcję {{Code|mw.logObject}} jest: <syntaxhighlight lang="lua"> local args2={ [1] = "coś przed wartość_numer coś po", [2] = "coś przed wartość_numer coś po", ["nazwa1"] = "coś przed wartość_numer coś po", ["nazwa2"] = "coś przed wartość_numer coś po", }; </syntaxhighlight> == {{Code|p["KopiujTabelęElementów"]}} == To jest nierekurencyjne kopiowanie tabeli {{Code|tabela}}, a jeżeli {{Code|wliczac_1{{=}}true}}, to klucze elementów nie mogą być puste lub wskazywać na wartość fałszywą, a jeśli {{Code|wliczac_2{{=}}true}}, to wartości tych elementów o tych kluczach nie mogą być puste lub wskazywać na wartość fałszywą. W takim przypadku wywoływana w takim bądź razem jest funkcja: {{Code|{{sr|#p.CzyTak|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)...end; </syntaxhighlight> Parametrami funkcji: {{OpisParametrów | 1 = {{Code|tabelka}} | _1 = Tabela elementów o kluczach i ich wartościach, na której dokonujemy operacji. | 2 = {{Code|wliczac_1}} | _2 = Jeśli {{Code|true}}, tabela {{Code|tabelka}} jest tworzona bez pustych lub fałszywych kluczy. | 3 = {{Code|wliczac_2}} | _3 = Jeśli {{Code|true}}, tabela {{Code|tabelka}} jest tworzona bez pustych lub fałszywych wartości o pewnych kluczach. }} Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul = require("Module:Parametry"); local tabela = { [1] = "wartość1", [2] = "wartość2", ["nazwa1"] = "wartość3", ["nazwa2"] = "wartość4", [""] = "wartość5". ["nazwa3"] = ""}; local tabela2 = parametry_modul["KopiujTabelęElementów"](tabela,true,true); </syntaxhighlight> Uzyskana tabela {{Code|tabela2}} jest w wyniku wywołania kodu, którą możemy podejrzeć przy pomocy funkcji: {{Code|mw.logObject}}: <syntaxhighlight lang="lua"> local tabela2 = { [1] = "wartość1", [2] = "wartość2", ["nazwa1"] = "wartość3", ["nazwa2"] = "wartość4", }; </syntaxhighlight> == {{Code|p["KopiujTabelęElementówBezTablicyKluczy"]}} == Funkcja kopiuje nierekurencyjnie elementy tabeli {{Code|tabelka}}, usuwając z niej elementy o kluczach wskazanych przez tabelę {{Code|tabelka2}}, którego elementy piszemy w postaci {{Code|{"klucz"] {{=}} "wartość"}}. Funkcją wyszukiwującą klucze w tabeli {{Code|tabelka2}} jest: {{Code|{{sr|#p.CzyJestTakiKluczTabeli|p=Parametry}}}}. Z tabeli można usunąć klucze, ewentualnie przy pomocy {{Code|wliczac_1{{=}}true}}, jeśli chodzi o klucze, i ewentualnie wartości {{Code|wliczac_2{{=}}true}}, a tutaj o wartości, o wartościach pustych lub fałszywych uzyskiwanej z funkcji: {{Code|{{sr|#p.CzyTak|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabelka}} | _1 = Tabela elementów o kluczach i ich wartościach, na której dokonujemy operacji. | 2 = {{Code|tabelka2}} | _2 = Tabela zbudowana przy pomocy ściśle określonych kluczy o dowolnych wartościach (wartości są nieistotne), za pomocą których usuwamy elementy tabeli {{Code|tabelka2}}. | 3 = {{Code|wliczac_1}} | _3 = Jeśli {{Code|true}}, tabela {{Code|tabelka}} jest tworzona bez pustych lub fałszywych kluczy. | 4 = {{Code|wliczac_2}} | _4 = Jeśli {{Code|true}}, tabela {{Code|tabelka}} jest tworzona bez pustych lub fałszywych wartości o pewnych kluczach. }} Przykłady usuwania kluczy z tabeli o kluczach i wartościach, pustych lub fałszywych (określoną wartością {{Code|false}}): <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabelka={ [1] = "wartość1", [2] = "wartość2", ["nazwa1"] = "wartość3", ["nazwa2"] = "wartość4", [""] = "wartość5", ["nazwa3"] = ""}; local tabelka2={[2]=true,["nazwa2"]=false,}; local tabelka3=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](tabelka,tabelka2,true,true); </syntaxhighlight> Tabelą uzyskaną z wyników: {{Code|tabelka3}}, jest, którą możemy podejrzeć przy pomocy funkcji {{Code|mw.logObject}}: <syntaxhighlight lang="lua"> local tabelka3={ [1] = "wartość1", ["nazwa1"] = "wartość3", }; </syntaxhighlight> == {{Code|p["KopiujRekurencyjnieTabelęElementów"]}} == Funkcja dokładnie rekurencyjnie kopiuje tabelę {{Code|tabelka}}, pomijając ewentualnie elementy o kluczach, przy pomocy {{Code|wliczac_1{{=}}true}}, i o wartościach przy pomocy: {{Code|wliczac_2{{=}}true}}, przy użyciu funkcji. Funkcja też kopiuje dokładnie tabele również z przyłączonymi metafunkcjami, ale ona musi mięc wtedy metodę: {{Code|__metatabelka.KopiujMetaTabela}}, bo w przeciwnym razie żadna metabela nie zostanie przekopiowana, wtedy kopiowanie będzie niedokładne. Dla tabel bez metatabel kopiowanie jest rekurencyjne i dokładne. Przykładami metatabel z tą funkcją do kopiowania metatabel są: {{Code|{{sr|#p.MetaTabelkaParsowanieSzablonu|p=Szablonowe}}}} i {{Code|{{sr|#p.MetaTabelkaSzablonowe|p=Szablonowe/Potrzebne}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki tablicy transportu. }} Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabelka}} | _1 = Tabela elementów o kluczach i ich wartościach, na której dokonujemy operacji. | 2 = {{Code|wliczac_1}} | _2 = Jeśli {{Code|true}}, tabela {{Code|tabelka}} jest tworzona bez pustych lub fałszywych kluczy. | 3 = {{Code|wliczac_2}} | _3 = Jeśli {{Code|true}}, tabela {{Code|tabelka}} jest tworzona bez pustych lub fałszywych wartości o pewnych kluczach. }} Przykładem kopiowania rekurencyjnego tabeli {{Code|tabelka}}, usuwając z niej jednocześnie klucze i wartości, puste lub fałszywe, jest: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabelka = { [1] = "wartość1", [2] = "wartość2", ["nazwa1"] = "wartość3", ["nazwa2"] = "wartość4", [""] = "wartość5", ["nazwa3"] = "",["nazwa4"] = { ["nazwa5"]=true, ["nazwa6"] = "", }, }; local tabelka2=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tabelka,true,true); </syntaxhighlight> Wynikiem jest dokładnie przekopiowana tabela {{Code|tabelka}} bez pewnych elementów: <syntaxhighlight lang="lua"> local tabelka2 = { [1] = "wartość1", [2] = "wartość2", ["nazwa1"] = "wartość3", ["nazwa2"] = "wartość4", ["nazwa4"] = {["nazwa5"] = true, }, }; </syntaxhighlight> Obiekt referencyjny {{Code|tabelka2}}, jest ona dokładną kopioną pierwotnej jej wersji, wskazuje na inny adres niż {{Code|tabelka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> f1rxmx2cxlylmedw7wbadr7hmt1bqru Wikibooks:Moduły/Parametry/Tom V 4 63971 555637 553031 2026-09-11T05:24:44Z Persino 2851 555637 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje do sprawdzania istnienia pewnych parametrów. == {{Code|p["NazwanyLiczbą"]}} == Wywołanie ramki {{Code|{{m|Parametry|NazwanyLiczbą}}}} umieszcza się w szablonie rodzicu, sprawdza, czy w szablonie podano taki nienazwany parametr, tzn. określony liczbą. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwanyLiczbą"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu modułu. }} Wywołanie ramki: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|NazwanyLiczbą|2}} </syntaxhighlight> Wywołanie szablonu z tą ramką jako dziecko: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|2=wartość|3=wartość}} </syntaxhighlight> Wtedy funkcja (ramka) w szablonie zwróci wartość {{Code|tak}}, bo znalazł parametr nienazwany {{Code|2|, ale nie numerowany. Funkcje wywołuje się tylko w postaci ramki, a nie w skrypcie {{lpg|Lua}} w {{lpr|Scribunto}}, bo tam istnienie parametru sprawdza się innymi metodami. == {{Code|p["NazwanyCiągiem"]}} == Wywołanie ramki {{Code|{{m|Parametry|NazwanyCiągiem}}}} umieszcza się w szablonie rodzicu, sprawdza, czy w szablonie podano taki nazwany parametr, tzn. określony łańcuchem znaków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwanyCiągiem"] = function (frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu modułu. }} Wywołanie ramki: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|NazwanyCiągiem|nazwa1}} </syntaxhighlight> Wywołanie szablonu z tą ramką jako dziecko: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=wartość|nazwa2=wartość}} </syntaxhighlight> Wtedy funkcja (ramka) w szablonie zwróci wartość {{Code|tak}}. Funkcje wywołuje się tylko w postaci ramki, a nie w skrypcie {{lpg|Lua}} w {{lpr|Scribunto}}, bo tam istnienie parametru sprawdza się innymi metodami. == {{Code|p.Nazwane}} == Wywołanie ramki {{Code|{{m|Parametry|Nazwane}}}} umieszcza się w szablonie rodzicu, sprawdza, czy w szablonie podano takie nazwane parametry, tzn. określone łańcuchami znaków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Nazwane(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu modułu. }} Wywołanie ramki: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|Nazwane|nazwa1|nazwa2|nazwa3}} </syntaxhighlight> Wywołanie szablonu z tą ramką jako dziecko: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=wartość1|nazwa2=wartość2}} </syntaxhighlight> Wtedy funkcja (ramka) w szablonie zwróci wartość {{Code|tak}}, bo w szablonie są dwa takie parametry, tzn. o kluczach {{Code|nazwa1}} i {{Code|nazwa2}} posiadający wartości, które są podzbiorem z trzech wartości według funkcji ramki {{Code|{{m|Parametry|Nazwane}}}}. Funkcje wywołuje się tylko w postaci ramki, a nie w skrypcie {{lpg|Lua}} w {{lpr|Scribunto}}, bo tam istnienie parametru sprawdza się innymi metodami. == {{Code|p.Nienazwane}} == Wywołanie ramki {{Code|{{m|Parametry|Nienazwane}}}} umieszcza się w szablonie rodzicu, sprawdza, czy w szablonie podano takie nienazwane parametry (oznaczone liczbami naturalnymi) o wartościach takich jak, tzn. określone łańcuchami znaków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Nienazwane(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu modułu. }} Wywołanie ramki: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|Nienazwane|wartość1|wartość2|wartość3}} </syntaxhighlight> Wywołanie szablonu z tą ramką jako dziecko: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|3=wartość1|6=wartość2}} </syntaxhighlight> Wtedy funkcja (ramka) w szablonie zwróci wartość {{Code|tak}}, bo w szablonie są dwa takie parametry nienazwane o wartościach takich, tzn. {{Code|wartość1}} i {{Code|wartość2}}, które są podzbiorem z trzech wartości według funkcji ramki {{Code|{{m|Parametry|Nienazwane}}}}. Funkcje wywołuje się tylko w postaci ramki, a nie w skrypcie {{lpg|Lua}} w {{lpr|Scribunto}}, bo tam istnienie parametru sprawdza się innymi metodami. == {{Code|p.Numerowane}} == Wywołanie ramki {{Code|{{m|Parametry|Numerowane}}}} umieszcza się w szablonie rodzicu, sprawdza, czy w szablonie podano takie numerowane parametry, tzn. określone łańcuchami znaków: Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Numerowane(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu modułu. }} Wywołanie ramki: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|Numerowane|wartość1|wartość2|wartość3}} </syntaxhighlight> Wywołanie szablonu z tą ramką jako dziecko: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|wartość2|wartość3}} </syntaxhighlight> Wtedy funkcja (ramka) w szablonie zwróci wartość {{Code|tak}}, bo w szablonie są dwa takie parametry numerowane (tzn. numerowane od jedynki bez przerw) o wartościach takich, tzn. {{Code|wartość2}} i {{Code|wartość3}}, które są podzbiorem z trzech wartości według funkcji ramki {{Code|{{m|Parametry|Numerowane}}}}. Funkcje wywołuje się tylko w postaci ramki, a nie w skrypcie {{lpg|Lua}} w {{lpr|Scribunto}}, bo tam istnienie parametru sprawdza się innymi metodami. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> c1q38zhr7bof6pyu0fqhd09kyxch76a Wikibooks:Moduły/Parametry/Tom VI 4 63972 555638 553032 2026-09-11T05:30:31Z Persino 2851 555638 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje manipulowania formatami łańcuchów znakowych. == {{Code|p["Odstępy"]}} == === Odpowiednik szablonowy === Odpowiednik szablonowy {{s|Odstępy}} ma te same parametry, co jej odpowiednik ramkowy funkcyjny: {{Code|{{m|Parametry|Odstępy}}}}. Przykładami wywołania funkcji: Poniższe przykłady są pokazane przy pomocy szablonu {{s|Pre}}. ; Przykład pierwszy {{Pre|{{s|Odstępy| Oto jest łańcuch. }}}} ; Wynik {{Pre|{{Odstępy| Oto jest łańcuch. }}}} Widzimy, że odstępy na końcach łańcucha zostały usunięte, a wewnątrz już nie. ---- ; Przykład drugi {{Pre|{{s|Odstępy|wewnątrz{{=}}tak| Oto jest łańcuch. }}}} ; Wynik {{Pre|{{Odstępy|wewnątrz=tak| Oto jest łańcuch. }}}} Widzimy, że odstępy na końcach łańcucha zostały usunięte, a wewnątrz łańcucha każdy odstęp został zastąpiony spacją. ---- ; Przykład trzeci {{Pre|{{s|Odstępy|wewnątrz{{=}}tak|dolny-myślnik{{=}}tak| Oto jest łańcuch. }}}} ; Wynik {{Pre|{{Odstępy|wewnątrz=tak|dolny-myślnik=tak| Oto jest łańcuch. }}}} Widzimy, że odstępy na końcach łańcucha zostały usunięte, a wewnątrz łańcucha każdy odstęp został zastąpiony na dolny myślnik. === Funkcja biblioteczna === Funkcja usuwa białe znaki i dolne myślniki na końcach podanego ciągu, ale też ewentualnie można przy pomocy tej funkcji zamieniać też te znaki wewnątrz ciągu, o ile nie jest już pusty po poprzedniej operacji, i zamienia ich na jedną spację lub dolny myślnik. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Odstępy"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|1}} lub {{Code|nazwa}} | _1 = Określa podany ciąg, któremu domyślnie są usuwane białe znaki lub dolne myślniki na końcach łańcucha. | 2 = {{Code|2}} lub {{Code|wewnątrz}} | _2 = Czy ma również robić podobne operacje, co powyżej, tylko że wewnątrz ciągu, z różnicą, że zaamieniając na jeden znak, | 3 = {{Code|3}} lub {{Code|dolny-myślnik}} | _3 = Czy ma zamieniać, spacje i dolne myślniki (jeżeli je wykrywa, patrz parametr poniżej), na dolne myślniki, | 4 = {{Code|4}} lub {{Code|spacje}} | _4 = Czy na końcach i wewnątrz ciągu ma wykrywać, do zamieniania, tylko odstępy, a nie również dolne myślniki. }} Funkcja zwraca przekształcony ciąg powyższymi metodami. Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local nazwa2=parametry_modul["Odstępy"]{nazwa=" Oto jest łańcuch. ",}; local nazwa3=parametry_modul["Odstępy"]{nazwa=" Oto jest łańcuch. ", ["wewnątrz"]="tak",}; local nazwa4=parametry_modul["Odstępy"]{nazwa=" Oto jest łańcuch. ", ["wewnątrz"]="tak",["dolny-myślnik"]="tak",}; </syntaxhighlight> Od pierwszego do trzeciego przykładu w naszym wypadku funkcja ta zwróci wartości: <syntaxhighlight lang="lua"> local nazwa2="Oto jest łańcuch."; local nazwa3="Oto jest łańcuch."; local nazwa4="Oto_jest_łańcuch."; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qeferbf8qjqaioirc08n020y94v13aj 555639 555638 2026-09-11T05:30:49Z Persino 2851 /* Funkcja biblioteczna */ 555639 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje manipulowania formatami łańcuchów znakowych. == {{Code|p["Odstępy"]}} == === Odpowiednik szablonowy === Odpowiednik szablonowy {{s|Odstępy}} ma te same parametry, co jej odpowiednik ramkowy funkcyjny: {{Code|{{m|Parametry|Odstępy}}}}. Przykładami wywołania funkcji: Poniższe przykłady są pokazane przy pomocy szablonu {{s|Pre}}. ; Przykład pierwszy {{Pre|{{s|Odstępy| Oto jest łańcuch. }}}} ; Wynik {{Pre|{{Odstępy| Oto jest łańcuch. }}}} Widzimy, że odstępy na końcach łańcucha zostały usunięte, a wewnątrz już nie. ---- ; Przykład drugi {{Pre|{{s|Odstępy|wewnątrz{{=}}tak| Oto jest łańcuch. }}}} ; Wynik {{Pre|{{Odstępy|wewnątrz=tak| Oto jest łańcuch. }}}} Widzimy, że odstępy na końcach łańcucha zostały usunięte, a wewnątrz łańcucha każdy odstęp został zastąpiony spacją. ---- ; Przykład trzeci {{Pre|{{s|Odstępy|wewnątrz{{=}}tak|dolny-myślnik{{=}}tak| Oto jest łańcuch. }}}} ; Wynik {{Pre|{{Odstępy|wewnątrz=tak|dolny-myślnik=tak| Oto jest łańcuch. }}}} Widzimy, że odstępy na końcach łańcucha zostały usunięte, a wewnątrz łańcucha każdy odstęp został zastąpiony na dolny myślnik. === Funkcja biblioteczna === Funkcja usuwa białe znaki i dolne myślniki na końcach podanego ciągu, ale też ewentualnie można przy pomocy tej funkcji zamieniać też te znaki wewnątrz ciągu, o ile nie jest już pusty po poprzedniej operacji, i zamienia ich na jedną spację lub dolny myślnik. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Odstępy"] = function(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|1}} lub {{Code|nazwa}} | _1 = Określa podany ciąg, któremu domyślnie są usuwane białe znaki lub dolne myślniki na końcach łańcucha. | 2 = {{Code|2}} lub {{Code|wewnątrz}} | _2 = Czy ma również robić podobne operacje, co powyżej, tylko że wewnątrz ciągu, z różnicą, że zaamieniając na jeden znak. | 3 = {{Code|3}} lub {{Code|dolny-myślnik}} | _3 = Czy ma zamieniać, spacje i dolne myślniki (jeżeli je wykrywa, patrz parametr poniżej), na dolne myślniki. | 4 = {{Code|4}} lub {{Code|spacje}} | _4 = Czy na końcach i wewnątrz ciągu ma wykrywać, do zamieniania, tylko odstępy, a nie również dolne myślniki. }} Funkcja zwraca przekształcony ciąg powyższymi metodami. Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local nazwa2=parametry_modul["Odstępy"]{nazwa=" Oto jest łańcuch. ",}; local nazwa3=parametry_modul["Odstępy"]{nazwa=" Oto jest łańcuch. ", ["wewnątrz"]="tak",}; local nazwa4=parametry_modul["Odstępy"]{nazwa=" Oto jest łańcuch. ", ["wewnątrz"]="tak",["dolny-myślnik"]="tak",}; </syntaxhighlight> Od pierwszego do trzeciego przykładu w naszym wypadku funkcja ta zwróci wartości: <syntaxhighlight lang="lua"> local nazwa2="Oto jest łańcuch."; local nazwa3="Oto jest łańcuch."; local nazwa4="Oto_jest_łańcuch."; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> oeyfbulq95gpwxs5ntuobohr47ndg1s Wikibooks:Moduły/Parametry/Tom VII 4 63973 555640 553033 2026-09-11T05:31:35Z Persino 2851 /* {{Code|p.DodajElementDoZbioru}} */ 555640 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tu przedstawione funkcje dodawania lub usuwania elementu do tabeli zbioru. == {{Code|p.DodajElementDoZbioru}} == Funkcja dodaje element do zbioru, czyli do tablicy numerowanej: {{Code|tabela}}, wartość: {{Code|wartość}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodajElementDoZbioru(tabela,wartosc)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|tabela}} | _1 = Tabela elementów numerowanych. | 2 = {{Code|wartosc}} |_2 = Wartość, którą wsadzamy jako ostatni element do tej tablicy. }} Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabela={}; --- Tutaj zwraca true; local tak1=parametry_modul.DodajElementDoZbioru(tabela,"wartość1"); --- Tutaj zwraca true; local tak2=parametry_modul.DodajElementDoZbioru(tabela,"wartość2"); --- Tutaj zwraca false; local tak3=parametry_modul.DodajElementDoZbioru(tabela,"wartość2"); </syntaxhighlight> Elementami tej tabeli są: <syntaxhighlight lang="lua"> local tabela={"wartość1","wartość2",}; </syntaxhighlight> Funkcja zbiera tylko niepowtarzające się wartości, w tym wypadku zwraca wartość {{Code|true}}, w przeciwnym wypadku {{Code|false}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> nzk08k830n1yfcwv3exb5rxldv3tv4d 555641 555640 2026-09-11T05:31:45Z Persino 2851 /* {{Code|p.DodajElementDoZbioru}} */ 555641 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tu przedstawione funkcje dodawania lub usuwania elementu do tabeli zbioru. == {{Code|p.DodajElementDoZbioru}} == Funkcja dodaje element do zbioru, czyli do tablicy numerowanej: {{Code|tabela}}, wartość: {{Code|wartość}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DodajElementDoZbioru(tabela,wartosc)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|tabela}} | _1 = Tabela elementów numerowanych. | 2 = {{Code|wartosc}} | _2 = Wartość, którą wsadzamy jako ostatni element do tej tablicy. }} Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabela={}; --- Tutaj zwraca true; local tak1=parametry_modul.DodajElementDoZbioru(tabela,"wartość1"); --- Tutaj zwraca true; local tak2=parametry_modul.DodajElementDoZbioru(tabela,"wartość2"); --- Tutaj zwraca false; local tak3=parametry_modul.DodajElementDoZbioru(tabela,"wartość2"); </syntaxhighlight> Elementami tej tabeli są: <syntaxhighlight lang="lua"> local tabela={"wartość1","wartość2",}; </syntaxhighlight> Funkcja zbiera tylko niepowtarzające się wartości, w tym wypadku zwraca wartość {{Code|true}}, w przeciwnym wypadku {{Code|false}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8tjxl5hbn3feooanvq6pn1v2909kxdq Wikibooks:Moduły/Parametry/Tom VIII 4 63974 555642 553034 2026-09-11T05:34:50Z Persino 2851 555642 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje do sprawdzania istnienia elementów tabeli. == {{Code|p.CzyJestTakiElementNumerowanyTabeli}} == Funkcja sprawdza, czy jest taki element numerowany. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|tabela}} | _1 = Tabela elementów, nie tylko numerowanych. | 2 = {{Code|wartosc}}| _2 = parametr wartości, jaką ta tablica powinna posiadać w postaci elementu numerowanego. }} Parametrami funkcji jest tabela {{Code|tabela}} elementów, niemający przerw, zaczynający się o kluczu od jedynki, ale z końcem, lub do pierwszej przerwy, dla której sprawdzamy, czy jakiś element jego o kluczu określonej liczbą naturalną, czy posiada podaną wartość {{Code|wartość}}. Zaużmy, że tabelą naszą jest obiekt zdefiniowany z elementami numerowanymi od jedynki bez przerw z końcem na końcu. Przykład: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabela={"wartość1","wartość2","wartość3",5,8,"wartość4",}; local czy_tak=parametry_modul.CzyJestTakiElementNumerowanyTabeli(tabela,"wartość3"); </syntaxhighlight> Funkcja w przykładzie zwraca wartość {{Code|true}}. == {{Code|p.CzyJestTakiElementNienazwanyTabeli}} == Funkcja sprawdza, czy jest taki element nienazwany, niekoniecznie numerowany. Ta tabela może mieć przerwy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|tabela}} | _1 = Tabela elementów, nie tylko nienazwwanych. | 2 = {{Code|wartosc}} | _2 = parametr wartości, jaką ta tablica powinna posiadać w postaci elementu nienazwanego. }} Parametrami funkcji jest tabela {{Code|tabela}} elementów, niekoniecznie, nienazwanych, dla której sprawdzamy, czy jakiś element jego o kluczu określonej liczbą naturalną, czy posiada podaną wartość {{Code|wartość}}. Zaużmy, że tabelą naszą jest obiekt zdefiniowany z elementami numerowanymi niekoniecznie od jedynki mogący być z przerwami z końcem na końcu. <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabela={[2]="wartość1",[5]="wartość2",[10]="wartość3",[80]=5,[90]=8,[100]="wartość4",}; local czy_tak=parametry_modul.CzyJestTakiElementNienazwanyTabeli(tabela,"wartość3"); </syntaxhighlight> Funkcja w przykładzie zwraca wartość {{Code|true}}. == {{Code|p.CzyJestTakiKluczTabeli}} == Funkcja sprawdza, czy jest taki element o danym kluczu o dowolnej wartości. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestTakiKluczTabeli(tabela,klucz)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|tabela}} | _1 = Tabela elementów z kluczami i ich wartościami. | 2 = {{Code|klucz}} | _2 = klucz, jaką ta tabela musi posiadać. }} Parametrami funkcji jest tabela {{Code|tabela}} elementów, niekoniecznie nazwanych, dla której sprawdzamy, czy jakiś element jego o danym kluczy {{Code|klucz}}, o dowolnej wartości. Zaużmy, że naszą tabelą jest tabela elementów nazwanych z kluczami i przydzielonymi im wartościom. <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabela={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]=5,["nazwa5"]=8,["nazwa6"]="wartość4",}; local czy_tak=parametry_modul.CzyJestTakiKluczTabeli(tabela,"nazwa5"); </syntaxhighlight> Funkcja w przykładzie zwraca wartość {{Code|true}}. == {{Code|p.CzyJestTakiElementTabeli}} == Funkcja sprawdza, czy jest taki element o danym kluczu {{Code|klucz}} i wartości {{Code|wartość}} dla elementów w danej tabeli. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|tabela}} | _1 = Tabela elementów z kluczami i ich wartościami. | 2 = {{Code|klucz}} | _2 = Klucz, jaką ta tabela musi posiadać. | 3 = {{Code|wartość}} | _3 = wartość tego klucza, jaką ta tabela powinna posiadać. }} Parametrami funkcji jest tabela {{Code|tabela}} o parametrach niekoniecznie nazwanych, ale on równie dobrze może składać się z elementów nienazwanych lub tylko numerowanych. Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabela={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]=5,["nazwa5"]=8,["nazwa6"]="wartość4",}; local czy_tak=parametry_modul.CzyJestTakiElementTabeli(tabela,"nazwa5",8); </syntaxhighlight> Funkcja tutaj zwraca wartość {{Code|true}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> q7eqf1cfv7tfd9lv6r7qcbj4tl9drtg Wikibooks:Moduły/Parametry/Tom IX 4 63975 555643 553035 2026-09-11T05:40:24Z Persino 2851 555643 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje łączenia wielu tabel. == {{Code|p["ŁączDwieTabele"]}} == Funkcja łączy dwie tabele przy pomocy funkcji: {{Code|{{sr|#p["ŁączNumerowaneTabele"]|p=Parametry}}}}, które tam są ustawione w sposób ponumerowany, natomiast te tabele zawierają elementy nazwane jak i nienazwane. Te elementy tych tabel łączymy ze sobą, w ten sposób powstanie wynikowa tabela końcowa. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączDwieTabele"]=function(tabela1,tabela2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|tabela1}} i {{Code|tabela2}} | _1 = tabele do połączenia w jedną tablicę. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela1={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",[2]="wartość13",[4]="wartość14",[7]="wartość15",[8]="wartość16",}; local tabela2={["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",[3]="wartość17",[10]="wartość18",[12]="wartość19",[15]="wartość20",[16]="wartość21",}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączDwieTabele"](tabela1,tabela2); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji jest: <syntaxhighlight lang="lua"> local tabela_polaczona={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",[2]="wartość13",[4]="wartość14",[7]="wartość15",[8]="wartość16",[3]="wartość17",[10]="wartość18",[12]="wartość19",[15]="wartość20",[16]="wartość21",}; </syntaxhighlight> == {{Code|p["ŁączZbioryElementówNumerowanychDwóchTabel"]}} == Funkcja łączy dwie tabele przy pomocy funkcji: {{Code|{{sr|#p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]|p=Parametry}}}}, które tam są ustawione w sposób ponumerowany, natomiast te tabele zawierają elementy ponumerowane. Te elementy tych tabel łączymy ze sobą, w ten sposób powstanie wynikowa tabela końcowa. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabela1,tabela2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|tabela1}}, {{Code|tabela2}} | _1 = Tabele do połączenia w jedną tablicę. }} Przykładem działania funkcji jest: <syntaxhighlight lang="lua"> local tabela1={"wartość1","wartość2","wartość3","wartość4",}; local tabela2={"wartość5","wartość6","wartość7","wartość8","wartość9",}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączZbioryElementówNumerowanychDwóchTabel"](tabela1,tabela2); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji jest: <syntaxhighlight lang="lua"> local tabela_polaczona={"wartość1","wartość2","wartość3","wartość4","wartość5","wartość6","wartość7","wartość8","wartość9",}; </syntaxhighlight> == {{Code|p["ŁączZbioryElementówNienazwanychDwóchTabel"]}} == Funkcja łączy dwie tabele przy pomocy funkcji: {{Code|{{sr|#p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]|p=Parametry}}}}, które tam są ustawione w sposób ponumerowany, natomiast te tabele zawierają elementy nienazwane. Te elementy tych tabel łączymy ze sobą, w ten sposób powstanie wynikowa tabela końcowa. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabela1,tabela2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|tabela1}}, {{Code|tabela2}} | _1 = Tabele do połączenia w jedną tablicę. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela1={[2]="wartość1",[4]="wartość2",[7]="wartość3",[8]="wartość4",}; local tabela2={[3]="wartość5",[10]="wartość6",[12]="wartość7",[15]="wartość8",[16]="wartość9",}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączZbioryElementówNienazwanychDwóchTabel"](tabela1,tabela2); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji jest: <syntaxhighlight lang="lua"> local tabela_polaczona={"wartość4","wartość1","wartość2","wartość3","wartość8","wartość5","wartość7","wartość9","wartość6",}; </syntaxhighlight> == {{Code|p["ŁączZbioryElementówNazwanychDwóchTabel"]}} == Funkcja łączy dwie tabele przy pomocy funkcji: {{Code|{{sr|#p["ŁączZbioryNazwanychElementówNumerowanychTabel"]|p=Parametry}}}}, które tam są ustawione w sposób ponumerowany, natomiast te tabele zawierają elementy nazwane. Te elementy tych tabel łączymy ze sobą, w ten sposób powstanie wynikowa tabela końcowa. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabela1,tabela2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|args}} | _1 = Tablica elementów będących elementami. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela1={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",}; local tabela2={["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączZbioryElementówNazwanychDwóchTabel"](tabela1,tabela2); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji jest: <syntaxhighlight lang="lua"> local tabela_polaczona={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",}; </syntaxhighlight> == {{Code|p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]}} == Funkcja wykorzystuje funkcję: {{Code|{{m|Parametry|ŁączTabele}}}}, którą nigdy się nie implemetuje w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, ale jako funkcję biblioteczną. Funkcja łączy ponumerowane elementy tabel, tabel nazwanych liczbami naturalnymi, które są pod zmienną {{Code|args}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|args}} | _1 = Tablica elementów będących elementami. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela1={"wartość1","wartość2","wartość3","wartość4",}; local tabela2={"wartość5","wartość6","wartość7","wartość8","wartość9",}; local tabela3={"wartość10","wartość11","wartość12",}; local args={[2]=tabela1,[10]=tabela2,[13]=tabela3,}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączZbioryNumerowanychElementówNienazwanychTabel"](args); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji: <syntaxhighlight lang="lua"> local tabela_polaczona={"wartość1","wartość2","wartość3","wartość4","wartość10","wartość11","wartość12","wartość5","wartość6","wartość17","wartość8","wartość9",}; </syntaxhighlight> == {{Code|p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]}} == Funkcja wykorzystuje funkcję: {{Code|{{m|Parametry|ŁączTabele}}}}, którą nigdy się nie implemetuje w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, ale jako funkcję biblioteczną. Funkcja łączy nazwane tylko liczbami naturalnymi elementy tabel, tabel nazwanych liczbami naturalnymi. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|args}} | _1 = Tablica elementów będących elementami. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela1={[2]="wartość1",[4]="wartość2",[7]="wartość3",[8]="wartość4",}; local tabela2={[3]="wartość5",[10]="wartość6",[12]="wartość7",[15]="wartość8",[16]="wartość9",}; local tabela3={[1]="wartość10",[7]="wartość11",[9]="wartość12",}; local args={[2]=tabela1,[10]=tabela2,[13]=tabela3,}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączZbioryNienazwanychElementówNienazwanychTabel"](args); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji: <syntaxhighlight lang="lua"> local tabela_polaczona={"wartość4","wartość1","wartość2","wartość3","wartość10","wartość11","wartość12","wartość8","wartość5","wartość7","wartość9","wartość6",}; </syntaxhighlight> == {{Code|p["ŁączZbioryNazwanychElementówNienazwanychTabel"]}} == Funkcja wykorzystuje funkcję: {{Code|{{m|Parametry|ŁączTabele}}}}, którą nigdy się nie implemetuje w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, ale jako funkcję biblioteczną. Funkcja łączy tylko elementy nazwane tabel, tabel określonych liczbami naturalnymi, które są pod zmienną {{Code|args}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|args}} | _1 = Tablica elementów będących elementami. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela1={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",}; local tabela2={["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",}; local tabela3={["nazwa10"]="wartość10",["nazwa11"]="wartość11",["nazwa12"]="wartość12",}; local args={[2]=tabela1,[10]=tabela2,[13]=tabela3,}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączZbioryNazwanychElementówNienazwanychTabel"](args); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji jest: <syntaxhighlight lang="lua"> local tabela_polaczona={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",["nazwa10"]="wartość10",["nazwa11"]="wartość11",["nazwa12"]="wartość12",}; </syntaxhighlight> == {{Code|p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]}} == Funkcja wykorzystuje funkcję: {{Code|{{m|Parametry|ŁączTabele}}}}, którą nigdy się nie implemetuje w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, ale jako funkcję biblioteczną. Funkcja łączy elementy ponumerowane tabel, tabel ponumerowanych liczbami naturalnymi, które są pod zmienną {{Code|args}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|args}} | _1 = Tablica elementów będących elementami. }} Przykłady użycia: <syntaxhighlight lang="lua"> local tabela1={"wartość1","wartość2","wartość3","wartość4",}; local tabela2={"wartość5","wartość6","wartość7","wartość8","wartość9",}; local tabela3={"wartość10","wartość11","wartość12",}; local args={tabela1,tabela2,tabela3,}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"](args); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji jest: <syntaxhighlight lang="lua"> local tabela_polaczona={"wartość1","wartość2","wartość3","wartość4","wartość5","wartość6","wartość7","wartość8","wartość9","wartość10","wartość11","wartość12",}; </syntaxhighlight> == {{Code|p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]}} == Funkcja wykorzystuje funkcję: {{Code|{{m|Parametry|ŁączTabele}}}}, którą nigdy się nie implemetuje w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, ale jako funkcję biblioteczną. Funkcja łączy elementy nazwane tylko liczbami naturalnymi tabel, tabel ponumerowanych, które są pod zmienną {{Code|args}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|args}} | _1 = Tablica elementów będących elementami. }} Przykładem działania funkcji jest: <syntaxhighlight lang="lua"> local tabela1={[2]="wartość1",[4]="wartość2",[7]="wartość3",[8]="wartość4",}; local tabela2={[3]="wartość5",[10]="wartość6",[12]="wartość7",[15]="wartość8",[16]="wartość9",}; local tabela3={[1]="wartość10",[7]="wartość11",[9]="wartość12",}; local args={tabela1,tabela2,tabela3,}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"](args); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji jest: <syntaxhighlight lang="lua"> local tabela_polaczona={"wartość4","wartość1","wartość2","wartość3","wartość8","wartość5","wartość7","wartość9","wartość6","wartość10","wartość11","wartość12",}; </syntaxhighlight> == {{Code|p["ŁączZbioryNazwanychElementówNumerowanychTabel"]}} == Funkcja wykorzystuje funkcję: {{Code|{{m|Parametry|ŁączTabele}}}}, którą nigdy się nie implemetuje w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, ale jako funkcję biblioteczną. Te tabele są łączone w pewien ściśle określony sposób. Funkcja łączy tylko elementy nazwane tabel, tabel ponumerowanych, które są pod zmienną {{Code|args}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|args}} | _1 = Tablica elementów będących elementami. }} Przykładem działania funkcji: <syntaxhighlight lang="lua"> local tabela1={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",}; local tabela2={["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",}; local tabela3={["nazwa10"]="wartość10",["nazwa11"]="wartość11",["nazwa12"]="wartość12",}; local args={tabela1,tabela2,tabela3,}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"](args); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji jest: <syntaxhighlight lang="lua"> local tabela_polaczona={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",["nazwa10"]="wartość10",["nazwa11"]="wartość11",["nazwa12"]="wartość12",}; </syntaxhighlight> == {{Code|p["ŁączNumerowaneTabele"]}} == Funkcja wykorzystuje funkcję: {{Code|{{m|Parametry|ŁączTabele}}}}, którą nigdy się nie implemetuje w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, ale jako funkcję biblioteczną. Te tabele są łączone dokładnie w taki sposób, aby elementy się nie powtarzały, i elementy w nowo powstałej tabeli są powtórzeniem elementów w podanych tabeli z dokładnościa do tej informacji. Funkcja łączy tabele ponumerowane, które są pod zmienną {{Code|args}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączNumerowaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|args}} | _1 = Tablica elementów będących elementami. }} Przykładem działania funkcji jest: <syntaxhighlight lang="lua"> local tabela1={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",[2]="wartość13",[4]="wartość14",[7]="wartość15",[8]="wartość16",}; local tabela2={["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",[3]="wartość17",[10]="wartość18",[12]="wartość19",[15]="wartość20",[16]="wartość21",}; local tabela3={["nazwa10"]="wartość10",["nazwa11"]="wartość11",["nazwa12"]="wartość12",[1]="wartość22",[7]="wartość23",[9]="wartość24",}; local args={tabela1,tabela2,tabela3,}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączNumerowaneTabele"](args); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji jest: <syntaxhighlight lang="lua"> local tabela_polaczona={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",["nazwa10"]="wartość10",["nazwa11"]="wartość11",["nazwa12"]="wartość12",[2]="wartość13",[4]="wartość14",[7]="wartość15",[8]="wartość16",[3]="wartość17",[10]="wartość18",[12]="wartość19",[15]="wartość20",[16]="wartość21",[1]="wartość22",[7]="wartość23",[9]="wartość24",}; </syntaxhighlight> == {{Code|p["ŁączNienazwaneTabele"]}} == Funkcja wykorzystuje funkcję {{Code|{{m|Parametry|ŁączTabele}}}}, którą nigdy się nie implemetuje w postaci ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, ale jako funkcję biblioteczną. Te tabele są łączone dokładnie w taki sposób, aby elementy się nie powtarzały, i elementy w nowo powstałej tabeli są powtórzeniem elementów w podanych tabeli z dokładnościa do tej informacji. Funkcja łączy tabele określone liczbami naturalnymi, które są pod zmienną {{Code|args}}. Definicja skrótowa fukcji: <syntaxhighlight lang="lua"> p["ŁączNienazwaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|args}} | _1 = Tablica elementów będących elementami. }} Przykładem działania funkcji jest: <syntaxhighlight lang="lua"> local tabela1={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",[2]="wartość13",[4]="wartość14",[7]="wartość15",[8]="wartość16",}; local tabela2={["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",[3]="wartość17",[10]="wartość18",[12]="wartość19",[15]="wartość20",[16]="wartość21",}; local tabela3={["nazwa10"]="wartość10",["nazwa11"]="wartość11",["nazwa12"]="wartość12",[1]="wartość22",[7]="wartość23",[9]="wartość24",}; local args={[2]=tabela1,[10]=tabela2,[13]=tabela3,}; local parametry_modul=require("Module:Parametry"); local tabela_polaczona=parametry_modul["ŁączNienazwaneTabele"](args); </syntaxhighlight> Uzyskaną tabelą w wyniku wywołania tej funkcji jest: <syntaxhighlight lang="lua"> local tabela_polaczona={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",["nazwa5"]="wartość5",["nazwa6"]="wartość6",["nazwa7"]="wartość7",["nazwa8"]="wartość8",["nazwa9"]="wartość9",["nazwa10"]="wartość10",["nazwa11"]="wartość11",["nazwa12"]="wartość12",[2]="wartość13",[4]="wartość14",[7]="wartość15",[8]="wartość16",[3]="wartość17",[10]="wartość18",[12]="wartość19",[15]="wartość20",[16]="wartość21",[1]="wartość22",[9]="wartość24",}; </syntaxhighlight> == {{Code|p["ŁączTabele"]}} == Funkcja łączy tabele ogólnie nazwane, określone w tablicy {{Code|args2}}, względem parametrów określonych w tablicy {{Code|args2}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ŁączTabele"] = function(args,args2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|args}} | _1 = Tabela elementów będących tabelami. | 2 = {{Code|args2}} | _2 = Tablica z kluczami o wartościach {{Code|true}}, jeśli to ustawienie włączone, w przeciwnym wypadku wyłączone. }} Funkcja łączy jedynie tabele ponumerowane liczbami naturalnymi, czy to w sposób nienazwany, też za pomocą tych liczb, ale wtedy numeracja nie musi być od jedynki i ona może mieć przerwy. Parametry (elementy) tabeli {{Code|args2}} są: * {{Code|args2.CzyPairsTablic}} - jeśli prawdziwa, to określa nazwane elementy tabel w tabeli, w przeciwnym wypadku numerowane, * {{Code|args2["CzyPairsElementówTablic"]}} - jeśli prawdziwa, to określa nazwane elementy poszczególnych tabel w tablicy ogólnie nazwanej, w przeciwnym wypadku numerowane, * {{Code|args2.CzyNazwaneElementyTabel}} - jeśli prawdziwe, łączy nazwane elementy tabel, mogą być określone liczbami naturalnymi, lub nie, w jedną tablicę, * {{Code|args2.CzyTylkoNazwaneElementyTabel}} - jeśli niepuste, łączy tylko nazwane elementy tabel, * {{Code|args2.NazwijElementyNumerowane}} - jeśli prawdziwe, to wśród elementów nienazwanych elementy numerowane traktuje je, jako nazwane, w przeciwnym wypadku takie elementy dodaje do zbioru elementów numerowanych łączonych tablic. Przykładami wykorzystania tej funkcji są funkcje łączenia tabel zdefiniowane w funkcjach powyżej, tzn. zdefiniowane w: * {{Code|{{sr|#p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]|p=Parametry}}}} - łączy ponumerowane elementy tabel, tabel nazwanych liczbami naturalnymi, * {{Code|{{sr|#p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]|p=Parametry}}}} - laczy nazwane tylko liczbami naturalnymi elementy tabel, tabel nazwanych liczbami naturalnymi, * {{Code|{{sr|#p["ŁączZbioryNazwanychElementówNienazwanychTabel"]|p=Parametry}}}} - łączy tylko elementy nazwane tabel, tabel określonych liczbami naturalnymi, * {{Code|{{sr|#p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]|p=Parametry}}}} - łączy elementy ponumerowane tabel, tabel ponumerowanych liczbami naturalnymi, * {{Code|{{sr|#p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]|p=Parametry}}}} - łączy elementy nazwane tylko liczbami naturalnymi tabel, tabel ponumerowanych, * {{Code|{{sr|#p["ŁączZbioryNazwanychElementówNumerowanychTabel"]|p=Parametry}}}} - łączy tylko elementy nazwane tabel, tabel ponumerowanych. Powyższe funkcje elementy nienazwane łączy w zbiory, ale nie jako elementy nazwane, tylko jako ponumerowane. {{Hr}} * {{Code|{{sr|#p["ŁączNumerowaneTabele"]|p=Parametry}}}} - łączy tabele ponumerowane, * {{Code|{{sr|#p["ŁączNienazwaneTabele"]|p=Parametry}}}} - łączy tabele określone liczbami naturalnymi. Powyższe funkcje łączą w sposób dokładny wiele tabel, niezależnie z jak nazwanymi elementami, te nazwane jest nie tylko określone liczbami naturalnymi (one nie muszą być ponumerowane), ale też łańcuchami. {{Hr}} Działanie tych funkcji w powyższej wyliczance można rozszyfrować na podstawie ich nazw podanych w nawiasach kwadratowych w cudzysłowach. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> nk98nrh4fbrn01xvsnqm8mkp3t1kg4r Wikibooks:Moduły/Parametry/Tom X 4 63976 555644 553036 2026-09-11T05:41:43Z Persino 2851 555644 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje dodawania lub usuwania elementów z tabeli o takich kluczach. == {{Code|p["UsuńElementyTabeli"]}} == Funkcja w tabelce {{Code|tabelka_1}} usuwa elementy, którego klucze są w {{Code|tabelka_2}}, któremu wartości przyporządkowane są obojętne, byle tylko, by nie były jako {{Code|nil}}. Najprościej gadając, wartości moją mieć w drugiej tabelce wartość {{Code|true}}, ale nie muszą takie być. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|tabela_1}} | _1 = Tabela elementów. | 2 = {{Code|tabela_2}} | _2 = Tabele, co za pomocą ich kluczy są usuwane elementy z tej pierwszej. }} Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabelka_1={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",}; local tabelka_2={["nazwa1"]=true,["nazwa3"]=true,}; local tabelka_koncowa=parametry_modul["UsuńElementyTabeli"](tabelka_1,tabelka_2); </syntaxhighlight> Stworzona w ten sposób tabelka {{Code|tabelka_koncowa}}, to ma taką referencję, co {{Code|tabelka_1}}, ale za to ma elementy, jako: <syntaxhighlight lang="lua"> local tabelka_koncowa={["nazwa2"]="wartość2",["nazwa4"]="wartość4",}; </syntaxhighlight> Ta pierwotna tabela została zmodyfikowana przy pomocy tej funkcji według tego przykładu. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ftmuqt9cymzn58e6aizga8v32nllcyq Wikibooks:Moduły/Parametry/Tom XI 4 63977 555645 553037 2026-09-11T05:43:04Z Persino 2851 555645 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawwione funkcje tworzenia tabeli. == {{Code|p["TwórzTabelęBezPowtarzającychKluczyTabel"]}} == Funkcja jest analogiem do funkcji {{Code|{{sr|#p["UsuńElementyTabeli"]|p=Parametry}}}}, dla jednej tabeli, a ta funkcja jest dla wielu. Funkcja w tabelce {{Code|args[1]}} przy pomocy, której z niej tworzymy elementy, usuwa, tworząc nową tabelę, elementy, którego klucze są w tabelach o numerach większych od jedynki, któremu wartości przyporządkowane są obojętne, byle tylko, by nie były jako {{Code|nil}}. Najprościej gadając, wartości moją mieć w drugiej tabelce wartość {{Code|true}}, ale nie muszą takie być. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TwórzTabelęBezPowtarzającychKluczyTabel"]=function(args)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|args[1]}} | _1 = Tabela elementów. | 2 = {{Code|args[2]}}, {{Code|args[3]}},... | _2 = tabele, co za pomocą ich kluczy są usuwane elementy z tej pierwszej. }} Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabelka_1={["nazwa1"]="wartość1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",["nazwa4"]="wartość4",}; local tabelka_2={["nazwa1"]=true,["nazwa3"]=true,}; local tabela_args={tabelka_1,tabelka_2,}; local tabelka_koncowa=parametry_modul["TwórzTabelęBezPowtarzającychKluczyTabel"](tabela_args); </syntaxhighlight> Stworzona w ten sposób tabelka: {{Code|tabelka_koncowa}}, nie ma takiej samej referencji, co: {{Code|tabelka_1}}, tylko inną, a więc nie modyfikujemy pierwotnej tej pierwzsej tabeli, tylko tworzymy nową, ale ma za to elementy: <syntaxhighlight lang="lua"> local tabelka_koncowa={["nazwa2"]="wartość2",["nazwa4"]="wartość4",}; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> shz8cpdpcmo5u2omx2ynf1jpkckglv2 Wikibooks:Moduły/Parametry/Tom XII 4 63978 555646 553038 2026-09-11T05:44:38Z Persino 2851 555646 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje typu. == {{Code|p.TypeTable}} == Funkcja sprawdza, czy typem zmiennej jest tabela w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrotowa funkcji: <syntaxhighlight lang="lua"> function p.TypeTable(zmienna) return (type(zmienna)=="table"); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|zmienna}} | _1 = Parametr, którego chcemy sprawdzić, czy pasuje do ściśle określonego typu według funkcji. }} Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabelka={"wartość1","wartosc2",["nazwa1"]="wartość3",} local czy_tak=parametry_modul.TypeTable(tabelka); -- Wartością zmiennej: czy_tak, jest: true; </syntaxhighlight> == {{Code|p.TypeFunction}} == Funkcja sprawdza, czy typem zmiennej jest funkcja w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TypeFunction(zmienna) return (type(zmienna)=="function"); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|zmienna}} | _1 = Parametr, którego chcemy sprawdzić, czy pasuje do ściśle określonego typu według funkcji. }} Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local funkcja=function(frame)return true;end; local czy_tak=parametry_modul.TypeFunction(funkcja); -- Wartością zmiennej: czy_tak, jest: true; </syntaxhighlight> == {{Code|p.TypeString}} == Funkcja sprawdza, czy typem zmiennej jest łańcuch znakowy w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TypeString(zmienna) return (type(zmienna)=="string"); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|zmienna}} | _1 = Parametr, którego chcemy sprawdzić, czy pasuje do ściśle określonego typu według funkcji. }} Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local str="wartość"; local czy_tak=parametry_modul.TypeString(tabelka); -- Wartością zmiennej: czy_tak, jest: true; </syntaxhighlight> == {{Code|p.TypeBoolean}} == Funkcja sprawdza, czy typem zmiennej jest typ logiczny w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TypeBoolean(zmienna) return (type(zmienna)=="boolean"); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|zmienna}} | _1 = Parametr, którego chcemy sprawdzić, czy pasuje do ściśle określonego typu według funkcji. }} Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local czy_jest_tam=false; local czy_tak=parametry_modul.TypeBoolean(czy_jest_tam); -- Wartością zmiennej: czy_tak, jest: true; </syntaxhighlight> == {{Code|p.TypeNumber}} == Funkcja sprawdza, czy typem zmiennej jest liczba w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TypeNumber(zmienna) return (type(zmienna)=="number"); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|zmienna}} | _1 = Parametr, którego chcemy sprawdzić, czy pasuje do ściśle określonego typu według funkcji. }} Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local liczba=2; local czy_tak=parametry_modul.TypeNumber(liczba); -- Wartością zmiennej: czy_tak, jest: true; </syntaxhighlight> == {{Code|p.TypeNil}} == Funkcja sprawdza, czy typem zmiennej jest zmienna z przydzieloną wartością, której jest {{Code|nil}}, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TypeNil(zmienna) return (type(zmienna)=="nil"); end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów| | 1 = {{Code|zmienna}} | _1 = Parametr, którego chcemy sprawdzić, czy pasuje do ściśle określonego typu według funkcji. }} Przykłady użycia: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local czy_nil=nil; local czy_tak=parametry_modul.TypeNil(czy_nil); -- Wartością zmiennej: czy_tak, jest: true; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> nykc2jdfmuncgf69rapxts7gwac03yl Wikibooks:Moduły/Parametry/Tom XIII 4 63979 555647 553039 2026-09-11T05:47:16Z Persino 2851 555647 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} ; Funkcje prawdy i fałszu W funkcjach: {{Code|{{sr|#p["CzyTakCiąg"]|p=Parametry}}}} i {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, uruchomione w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, muszą posiadać dodatkowo parametr {{Parametr|wyspecjalizowana|tak}}, aby dało się w je wsadzić skutecznie parametry do samej tej ramki dziecka, a nie używać parametry szablonu rodzica. W tej pierwszej funkcji jest wykorzystywana na druga, w której w tej pierwszej w parametrze pierwszym, w przypadku łańcuchów znakowych wykorzystywana jesy funkcja do usuwania dolnych myślników i odstępów na końcach, a potem jest uruchamiana ta druga. Te funkcje rozwazane tutaj powiedziane powyżej w wikikodzie w szablonie rodzicu, czy w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, służą do sprawdzenia, czy wartość, czy jest nierówna ciągowi uzyskanemu pustemu, w przypadku tej pierwszej funkcji, a w przypadku drugiej, czy jest ciągiem pustym, a jeżeli jest to liczba, to czy jest nie równa {{Code|0}}, czy wartością logiczną jest jako {{Code|true}}, w przypadku tabel, czy jest niepustą tabelą, ale za to w funkcji, czy funkcja o nazwie {{Code|zmienna}} z parametrami {{Code|parametry}}, czy zwraca wartość odpowiadająca {{Code|true}}, jeżeli tak, to ta funkcja zwróci znak {{Code|tak}}, w przeciwnym wypadku w wikikodzie zwraca wartość pustą, a w kodzie wartość {{Code|nil}}. == {{Code|CzyTakSilnik}} == Funkcja pomocnicza służąca do liczenia wartości logicznej {{Code|tak}} lub {{Code|nil}} parametrów ramki, w wikikodzie, funkcji {{lpg|lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyTakSilnik(args,funkcja)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|args}} | _1 = Tablica elementów z pierwszym elementem do sprawdzenia, z drugim jako nazwa modułu z funkcjami {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w takim przypadku ten pierwszy element jest nazwą funkcji, który w połączeniu z nazwą modułu daje referencję do funkcji. | 2 = {{Code|funkcja}} | _2 = Funkcja, za pomocą której sprawdzamy logiczność pierwszego elementu tej tablicy. }} Możliwymi wartościami funkcji parametru {{Code|funkcja}} jest {{Code|CzyTak}} lub {{Code|CzyTakCiąg}} (ta funkcja wykorzystuje funkcję {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}} do swojego argumentu, który służy do sprawdzania, jaki spełnia warunek). Gdy istnieje parametr tablicy {{Code|args}} funkcji o parametrze nienazwanym {{Code|args[2]}}, który jest nazwą modułu z funkcjami {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a samą funkcją jest {{Code|args[1]}}, to tak utworzona funkcja jest zmienną {{Code|parametr}}, ma jeżeli jej nie ma, to ona przyjmuje wartość {{Code|args[1]}}, a gdy jednak istnieje ten drugi element, to na podstawie którego zbierane są argumenty ramki nazwane jak nazwane, tzn. klucze i ich wartości przypisuje, a w przypadku parametrów nienazwanych (nie są zbierane elementy w tej tablicy o kluczach o wartości: {{Code|1}} i {{Code|2}}), a te inne klucze są pomniejszane o dwa, w ten sposób jest utworzona tabela {{Code|argsfun}}. Gdy nie ma składowej drugiej tablicy, tzn. {{Code|args[2]}}, to wtedy funkcja sprawdza, czy {{Code|args[1]}} to jest liczba w łańcuchu znakowym, lub bezpośrednio liczba, a jeżeli nie da się jej przetransformować na liczbę, to sprawdza, czy typem tej zmiennej jest {{Code|string}} (czy typem jest szereg), po działaniu funkcją: {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, jeśli ma wtedy wartość: {{Code|"true"}}, wtedy ta rozważana na samym początku zmienna przyjmuje wartość {{Code|true}}, {{Code|"false"}}, wtedy {{Code|false}}, {{Code|"nil"}}, wtedy {{Code|nil}}. A jeżeli ta zmienna żadnej tej wartości nie przyjmuje z tych wartości, to wtedy jest transformowana na liczbę, jeżeli da się tą operację dokonać. Na samym końcu jest liczona wartość logiczna z przygotowanymi parametrami, według jednej z dwóch specjalnie przygotowanych funkcji w postaci wywołania ogólnego: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil; </syntaxhighlight> Gdzie {{Code|funkcja}}, to {{Code|CzyTak}} lub {{Code|CzyTakCiąg}}, a {{Code|parametr}}, to funkcja w jakimś module lub inna wartość, a {{Code|argsfun}}, to tabela argumentów ramki, dziecka, w kodzie {{lpg|Lua}} w {{lpr|Scribunto}}, w wikikodzie w szablonie rodzicu. Gdy ta funkcja zwróci wartość logiczną odpowiadającą {{Code|true}}, to wtedy zwraca {{Code|tak}}, w przeciwnym wypadku {{Code|nil}}. Ta funkcja jest wykorzystywana, gdy jest uruchamiana w ramce, gdy mamy parametry ramki: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzyTakCiąg| Wartość |nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wyspecjalizowana=tak}} </syntaxhighlight> Podobnie jest z funkcją {{Code|{{sr|#p.CzyTak|p=Parametry}}}}. A jak jest tworzony parametr zmiennej z powyższych wywołań, to jest powiedziane powyżej. Równie dobrze możemy zefiniować atrapę funkcji {{Code|frame.getParent}}, wtedy: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local czy_tak=parametry_modul["CzyTakCiąg"]{args={ [1]=" Wartość ", [2]="", ["nazwa1"]="wartość1", ["nazwa2"]="wartość2", [3]="wartość3", [4]="wartość4", ["wyspecjalizowana"]="tak", }, getParent=function()end, }; </syntaxhighlight> Czasami tak potrzeba robić, by ominąc zabezpieczenia pewnych funkcji, nawet tutaj. == {{Code|p["CzyTakCiąg"]}} == W tej funkcji parametry mogą być zbierane w osobnych parametrach lub w jednej tablicy albo ta funkcja może być uruchomiona w ramce. Funkcja do swojego działania wykorzystuje do tego {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}} i {{Code|{{sr|#p.CzyTak|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["CzyTakCiąg"]=function(...)...end; </syntaxhighlight> Jeżeli ta funkcja jest uruchomiona w ramce, np. w postaci: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzyTakCiąg| Wartość |wyspecjalizowana=tak}} </syntaxhighlight> To w tym przypadku funkcja zwraca wartość {{Code|tak}}, tak jak funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}}, a w przypadku: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzyTakCiąg| |wyspecjalizowana=tak}} </syntaxhighlight> To w tym przypadku funkcja zwraca wartość równą ciągowi pustemu, mimo że funkcja {{Code|{{sr|#p.CzyTak|p=Parametry}}}} zwróci wartość {{Code|tak}}. Podobnie jest w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local czy_tak=parametry_modul["CzyTakCiąg"](" Wartość "); </syntaxhighlight> Ta funkcja zwróci wartość {{Code|tak}}. A teraz inny przykład: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local czy_tak=parametry_modul["CzyTakCiąg"](" "); </syntaxhighlight> Ta funkcja zwróci wartość {{Code|nil}}. == {{Code|p.CzyTak}} == W tej funkcji parametry mogą być zbierane w osobnych parametrach lub w jednej tablicy albo ta funkcja może być uruchomiona w ramce. Funkcja do swojego działania nie wykorzystuje do tego {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, tak jak to robi {{Code|{{sr|#p["CzyTakCiąg"]|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.CzyTak=function(...)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|1}} lub {{Code|zmienna}} | _1 = Sprawdzana zmienna, może być to funkcją. | 2 = {{Code|2}} lub {{Code|parametry}} | _2 = parametry funkcji, może być to tablica parametrów, jest ona wykorzystywana, gdy powyższy element jest funkcją. }} Jeżeli ta funkcja jest uruchomiona w ramce, np. w postaci: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzyTak| Wartość |wyspecjalizowana=tak}} </syntaxhighlight> To w tym przypadku funkcja zwraca wartość {{Code|tak}}, tak jak funkcja {{Code|{{sr|#p["CzyTakCiąg"]|p=Parametry}}}} A w przypadku: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzyTak| |wyspecjalizowana=tak}} </syntaxhighlight> To w tym przypadku funkcja zwraca wartość równą ciągowi {{Code|tak}}, mimo że funkcja {{Code|{{sr|#p["CzyTakCiąg"]|p=Parametry}}}} zwróci wartość równoważną ciągowi pustemu. <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|CzyTak||wyspecjalizowana=tak}} </syntaxhighlight> Ta funkcja uruchomiona w ramce w wikikodzie zwraca wartość równą ciągowi pustemu, tak samo, jak funkcja {{Code|{{sr|#p["CzyTakCiąg"]|p=Parametry}}}}. Podobnie jest w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local czy_tak=parametry_modul.CzyTak(" Wartość "); </syntaxhighlight> Ta funkcja zwróci wartość {{Code|tak}}. A teraz inny przykład: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local czy_tak=parametry_modul.CzyTak(" "); </syntaxhighlight> Ta funkcja zwróci wartość {{Code|tak}}, niezależnie, czy tym ciągiem jest szereg składający się z samych znaków odstępów. A teraz inny przykład: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local czy_tak=parametry_modul.CzyTak(""); </syntaxhighlight> Ta funkcja wtedy zwróci wartość równą {{Code|nil}} w kodzie {{lpg|Lua}} w {{lpg|Lua|Scribunto}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> tdsh09craj9qndo8uazpjd3h8di4gt3 Wikibooks:Moduły/Parametry/Tom XIV 4 63980 555648 553132 2026-09-11T05:49:49Z Persino 2851 555648 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje parametrów. == {{Code|p.PobierzFrameEwentualnieParent}} == Argument tej funkcji {{Code|frame}} koniecznie musi być tablicą, w przypadku przeciwnym wywoła to błąd języka {{lpg|Lua}}, że z wartości nietabelowej chcemy wyliczyć jego nieistniejący element {{Code|getParent}}, który ma prawo nie być. Funkcja pobiera parametry ramki szablonu rodzica, a nie dziecka, a jeżeli w dziecku w ramce w wikikodzie w szablonie podamy specjalny parametr {{Parametr|wyspecjalizowana|tak}}, to wtedy ta funkcja ściąga parametry ramki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PobierzFrameEwentualnieParent(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki tablicy transportu. }} Tą funkcją można sterować ze strony ramki tym właśnie specjalnym parametrem o wartości niepustej, którą jest {{Parametr|wyspecjalizowana|tak}}. W ramce podajemy argumenty wraz z tym specjalnym parametrem: <syntaxhighlight lang="mediawiki"> {{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5|wyspecjalizowana=tak}} </syntaxhighlight> To wtedy w kodzie w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w module o nazwie {{Code|Nazwa modułu}}, piszemy: <syntaxhighlight lang="lua"> local p={}; function p["Nazwa funkcji"](frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzFrameEwentualnieParent(frame).args; .... end; </syntaxhighlight> To wtedy w kodzie ściągane parametry ramki dziecka. Tę funkcję można równie dobrze wykorzystać do zwykłych tabel: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",}; local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzFrameEwentualnieParent(tabela); </syntaxhighlight> A w tym przypadku ta funkcja nic nie robi, tylko zmienna {{Code|args}} referencyjnie wskazuje na tablicę {{Code|tablica}}. Ale można ją wykorzystać, gdy by funkcja {{Code|Nazwa funkcji}}, była uruchomiona ze zwykłą tablicą, ale z możliwością, że to może być tablicą ramki {{Code|frame}} tablicy transportu, np.: <syntaxhighlight lang="lua"> --- Pierwsza możliwość; local wartosc1=p["Nazwa funkcji"](frame); -- Druga możliwość local wartosc2=p["Nazwa funkcji"]{["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",}; </syntaxhighlight> Dla obu jest taka niedogodność, że jedynie jest taka nieprawidłowość, że w przypadku parametru tablicy ramki tablicy transportu należy podawać uzyskany element {{Code|args}}, a w przypadku zwykłej tablicy już nie, tą niedokodność rozwiązuje funkcja: {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}. == {{Code|p.PobierzArgsParametry}} == Argument tej funkcji {{Code|frame}} koniecznie nie musi być tablicą, bo wtedy nie wywoła to błędu języka {{lpg|Lua}}, że z wartości nietabelowej chcemy wyliczyć jego niepusty element {{Code|getParent}}, bo przedtem sprawdzana jest w tej funkcji, czy jest to tablica. W definicji tej funkcji zmienna uzyskana z funkcji: {{Code|{{sr|#p.PobierzFrameEwentualnieParent(frame)|p=Parametry}}}}, a jeśli jej składowa {{Code|args}} jest tablicą, to jest właśnie ona zwracana, a jeśli istnieje, ale nie jest tablicą, lub ona nie istnieje, to wtedy brana jest właśnie wartość tablicowa {{Code|frame}}, jeśli jest ona taka, a gdy nie, to wtedy z tej funkcji tutaj nie korzystamy. Funkcja pobiera parametry ramki szablonu rodzica, a nie dziecka, a jeżeli w dziecku w ramce w wikikodzie w szablonie podamy specjalny parametr {{Parametr|wyspecjalizowana|tak}}, to wtedy ta funkcja ściąga parametry ramki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica transportu ramki. | 2 = {{Code|czy_nie_tablica_jako_tablica}} | _2 = Czy wartości nietablicowe umieszczać w jednoelemenowej tabeli. }} Funkcja wykorzystuje wspomnianą powyżej funkcję do swojego działania, ona jest wtedy aktywowana, gdy zmienna {{Code|frame}} jest tablicą, i jest sprawdzane, czy ona posiada nazwany element o kluczu {{Code|args}}, i czy jest on tablicowy. Jeżeli wartością zmiennej {{Code|frame}} nie jest tablica, ale nie przybiera wartości {{Code|nil}}, to ona jest umieszczana w tablicy, jeżeli zmiennej {{Code|czy_nie_tablica_jako_tablica}} przydzielimy wartość {{Code|true}}, w przeciwnym wypadku zwracana jest ona w postaci niezmienionej, a jeżeli wartość tej zmiennej nie istnieje, to zwracana jest zwykła tablica pusta. Tą funkcją można sterować ze strony ramki tym właśnie specjalnym parametrem o wartości niepustej. W ramce podajemy argumenty wraz z tym specjalnym parametrem: <syntaxhighlight lang="mediawiki"> {{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5|wyspecjalizowana=tak}} </syntaxhighlight> To wtedy w kodzie w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w module o nazwie {{Code|Nazwa modułu}}, piszemy: <syntaxhighlight lang="lua"> local p={}; function p["Nazwa funkcji"](frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); .... end; </syntaxhighlight> To wtedy w kodzie ściągane parametry ramki dziecka. Tę funkcję można równie dobrze wykorzystać do zwykłych tabel: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",}; local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(tabela); </syntaxhighlight> A w tym przypadku ta funkcja nic nie robi, tylko zmienna {{Code|args}} referencyjnie wskazuje na tablicę {{Code|tablica}}. Ale można ją wykorzystać, gdyby funkcja {{Code|Nazwa funkcji}}, była uruchomiona ze zwykłą tablicą, ale z możliwością, że to może być tablicą ramki {{Code|frame}} tablicy transportu, np.: <syntaxhighlight lang="lua"> --- Pierwsza możliwość; local wartosc1=p["Nazwa funkcji"](frame); -- Druga możliwość local wartosc2=p["Nazwa funkcji"]{["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",}; </syntaxhighlight> Dla obu tych przypadków nie ma żadnej niedogodności, jak to występowała w {{Code|{{sr|#p.PobierzFrameEwentualnieParent(frame)|p=Parametry}}}}. Jeśliby do funkcji tablicy transportu dać wartość równą nie tablicy, to wtedy równoważnie możemy napisać: <syntaxhighlight lang="lua"> local wartosc="wartość"; local wynik=p["Nazwa funkcji"](wartosc); </syntaxhighlight> to wtedy definicję tej funkcji piszemy: <syntaxhighlight lang="lua"> local p={}; function p["Nazwa funkcji"](frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); local wartosc=args[1]; end; </syntaxhighlight> lub równoważnie możemy zapisać: <syntaxhighlight lang="lua"> local p={}; function p["Nazwa funkcji"](frame) local parametry_modul=require("Module:Parametry"); local wartosc=parametry_modul.PobierzArgsParametry(frame); end; </syntaxhighlight> A jeżeli nie wsadziliśmy żadnej wartości do funkcji ramki tablicy transportu lub tą wartością jest {{Code|nil}}, wtedy: <syntaxhighlight lang="lua"> local wynik=p["Nazwa funkcji"](); </syntaxhighlight> wtedy definicja tej funkcji wygląda: <syntaxhighlight lang="lua"> local p={}; function p["Nazwa funkcji"](frame) local parametry_modul=require("Module:Parametry"); -- Zmienna: args, wskazuje na wartość, którą jest tablicą pustą, tzn. w tej tablicy nie ma wcale elementów; local args=parametry_modul.PobierzArgsParametry(frame); end; </syntaxhighlight> Widzimy, że wtedy zmienna {{Code|args}} jest normalną pustą tablicą, i nie musimy wtedy wcale pisać poniżej, bo wtedy wychodzi w tym przypadku na to samo: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame,true); </syntaxhighlight> Argument drugi w {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}, który w naszym przypadku musi mieć wartość {{Code|true}}, a wtedy jest jedynie sens, gdy {{Code|frame}} nie jest tablicą, i gdy chcemy tą wartość umieścić w tablicy, a nie powtórzyć wartość, tzn. chcemy napisać: {{Code|{{(}}frame,{{)}}}}, w przeciwnym wypadku musilibyśmy napisać coś w rodzaju, zamiast tak spreparowanej tablicy: {{Code|frame}}, czyli: <syntaxhighlight lang="lua"> -- Pierwszy przypadek, gdy frame jest wartością nietablicową; local parametry_modul=require("Module:Parametry"); ... -- Zwracana wartość: args, to nic innego niż: {frame,}; local args=parametry_modul.PobierzArgsParametry(frame,true); ... -- Zwracana wartość: args, to nic innego niż: frame, a nie {frame,}, jak poprzednio; local args=parametry_modul.PobierzArgsParametry(frame); </syntaxhighlight> == {{Code|p.PobierzParametryRamki}} == Funkcja służy do ustawienia pewnych domyślnych dwóch pewnych funkcji służących do pobieranie danych z tabelki z pierwszej tej funkcji, jeżeli ona posiada klucz o wartości {{Code|args}}, to zwracana jest ta właśnie tablica jako argument pierwszej tej funkcji, jeżeli jest w ogóle tablicą, w przeciwnym wypadku zwracana jest ta oryginalna tablica też jako argument tej funkcji, w przeciwnym dalszym wypadku zwracana jest zwracana wartość ta jako argument tej drugiej funkcji, która zwraca prawdziwą wartość z argumentu tylko za pierwszym razem, z tej funkcji, za następnym i dalszym razem {{Code|nil}}. Z tak utworzonej ogólnie większej funkcji wykorzystywana jest w budowie omawianej funkcji, która jest zwracana przez funkcję w tym nagłówku, która względem jego budowy wywołuje raz pierwszą albo drugą poprzednią wspomnianą funkcję zależną od rodzaju zmiennej {{Code|frame}}, która może być tabelką, ale nie musi być. Ta funkcja zwracana przez funkcję w nagłówku przyjmuje argument, która jest kluczem do tych wspomnianych, może że, tabel (dokładnie, która ta może tabelka to zależy od formatu tej naszej rozważanej zmiennej), a jeżeli to nie tabelka, co jest zwracane, to już zostało powiedziane. Definicja skrótowa tej funkcji jest: <syntaxhighlight lang="lua"> function p.PobierzParametryRamki(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki tablicy transportu. }} Weźmy ramkę sformułowaną w wikikodzie jako dziecko w szablonie rodzicu: <syntaxhighlight lang="mediawiki"> {{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5}} </syntaxhighlight> To wtedy tablica ramki tablicy transportu posiada właśnie {{Code|frame}}, która jest tablicą, i na pewno posiada tablicę o nazwie {{Code|args}}, to wtedy tę funkcję wywołaną w ramce, która wywołuje funkcję w nagłówku, formułujemy: <syntaxhighlight lang="lua"> local p={}; local p["Nazwa funkcji"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame); ... end; </syntaxhighlight> Równie dobrze funkcję z ramki można wywołać w sposób, co wtedy ta funkcja też zostanie wywołana pozytywnie: <syntaxhighlight lang="lua"> local wynik=p["Nazwa funkcji"]{args={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",}}; </syntaxhighlight> W tej funkcji nie trzeba definiować funkcji fałszywej {{Code|getParent}}, w postaci: {{Code|getParent{{=}}function()end}}. Widzimi, że ta tablica posiada nazwę zmiennej tablicowej o nazwie {{Code|args}}, ale ona nie jest tablicą ramki tablicy transportu, ale tą tablicę możemy bezposrednio wsadzić w tą główną tablicę w samym argumencie funkcji. Równie dobrze możemy wywołać tę funkcję zdefiniowaną naszą w jakimś module w sposób: <syntaxhighlight lang="lua"> local tabela={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",}; local wynik=p["Nazwa funkcji"]{tabela); </syntaxhighlight> też ta funkcja prawidłowo się wywoła. W tym przypadku, jak i w przypadkach powyżej, wyniki uzyskuje się w następującym wywołaniach: <syntaxhighlight lang="lua"> --- Zmienna: wartosc1, przyjmuje wartość: "wartość1"; local wartosc1=PobierzParametryRamki("nazwa1"); --- Zmienna: wartosc2, przyjmuje wartość: "wartość2"; local wartosc2=PobierzParametryRamki("nazwa2"); --- Zmienna: wartosc3, przyjmuje wartość: "wartość3"; local wartosc3=PobierzParametryRamki(1); </syntaxhighlight> W innym przypadku wywołań funkcji ramki jest wsadzenie do niej zwykłego nietablicowego elementu, może być też to wartość: {{Code|nil}}. A to wywołanie jest: <syntaxhighlight lang="lua"> local wartosc="wartość"; --Zmienna: wartosc, nie jest w tym przypadku tablicą; local wynik=p["Nazwa funkcji"](wartosc); </syntaxhighlight> Wtedy w tej ramce w celu uzyskania jakikolwiek wartości jest przykład wywołania tej funkcji zwracanej przez funkcję w ramce z argumentem pustym. <syntaxhighlight lang="lua"> -- Zmienna: wartość1, przyjmuje wartość: "wartość"; Jeżeli ona, przyjmuje wartość: nil, to wywołanie rzuci: nil, i za każdym następny razem; local wartosc1=PobierzParametryRamki(); -- Zmienna: wartość2, przyjmuje wartość: nil; local wartosc2=PobierzParametryRamki(); </syntaxhighlight> W wywołaniach powinno dbać się o właściwą kolejność wywołań, bo argumentem funkcji z tablicy transportu może być zwykła tablicowa wartość. Najpierw uzyskujemy wartości nietablicowe, a później tablicowe, na wypadek niewiadomej {{Code|frame}} jakiego typu ma być wartość. Też ta zmienna może istnieć pod kilkoma możliwymi kluczami, lub tą zmienną może być jedyny argument funkcji, która jest nietablicową wartością, wtedy ją się wywołuje jako dla przypadku, gdy parametr jest nietablicowy lub jest pod kluczem {{Code|tekst}}: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst"); </syntaxhighlight> Lub chcemy tę funkcję wywołać bezparametrowo, gdy chcemy, by {{Code|frame}} nie była tablicą: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tekst=parametry_modul.PobierzParametryRamki(frame)(); </syntaxhighlight> Wtedy ta zmienna w przedostatnim przykładzie jest pod wartością {{Code|tekst}}, gdy wartość {{Code|frame}} jest tablicą, lub może być jedyną wartością, którą jest {{Code|frame}} jako zmienna nietablicowa, wtedy ta zmienna też jest pod {{Code|tekst}}, ta funkcja uzyskana z: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}, wtedy może być wywołana tylko raz z nienilową wartością zwracaną, następnym razem zwraca wartość {{Code|nil}}, wtedy to dotyczy przedostatniego i ostatniego przykładu. Jeżeli {{Code|frame}} jest nietablicowa, to wtedy wartość {{Code|tekst}} jest taka sama, co {{Code|frame}}. A jeżeli jest tablicą, to ta wartością jest {{Code|frame.args["tekst"]}}, lub gdy {{Code|args}} nie istnieje, lub istnieje, ale jest nietablicowa, to wtedy ta wartość jest {{Code|frame["tekst"]}}. A gdy zmienne istnieją pod wieloma kluczami, lub gdy funkcję wywołano ze zmienną nietablicową, wtedy ogólnie możemy dla przykładu powiedzieć: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame); local wartosc1=PobierzParametryRamki("nazwa1") or PobierzParametryRamki(1); local wartosc2=PobierzParametryRamki("nazwa2") or PobierzParametryRamki(2); local wartosc3=PobierzParametryRamki("nazwa3") or PobierzParametryRamki(3); </syntaxhighlight> Wtedy ta zmienna jest pod kluczem, np.: {{Code|nazwa1}} lub {{Code|1}}, tablicy ramki {{Code|frame}} tablicy transportu, następne wywołania dla następnych kluczy też zrzucą pewne wartości, lub jest ona zwykłą nietablicową wartością mogącą być równą nawet {{Code|nil}}. Następne wywołania uzyskanej tak funkcji w przypadku, gdy {{Code|frame}} jest nietablicowy, rzucać będzie z samej definicji funkcji wartości {{Code|nil}}, czyli {{Code|wartosc2{{=}}wartosc3{{=}}nil}}, ale za to wartość {{Code|wartosc1}} nie musi być, ale może, wartością {{Code|nil}}, jest tą wartością, gdy {{Code|frame{{=}}nil}}, w przeciwnym wypadku za pierwszym razem tej wartości nietablicowej uzyskamy wartość nie {{Code|nil}}, a za drugim i dalszym zawsze wartość {{Code|nil}}. == {{Code|p.PobierzElementNumerowanyZFrameLubTablicy}} == Definicja skrótowa funkcji jest z parametrem charakteryzującym pewien zestaw zmiennych {{Code|frame}}, które nie jest tablicą ramki tablicy transportu, tylko innym parametrem, który jest tablicą parametrów podanych do funkcji, nawet gdy parametrem podanym do funkcji, w której wykorzystujemy tą funkcję, jest jedyna zmienna będąca tablicą ramki, ale z drugiej strony tak nie musi być, może być to rozbudowany zestaw zmiennych, np. nazwanych i nienazwanych, którego wszystkie sposoby podawania łączymy jednym sposobem podawania. Mimo że parametry funkcji są parametrami nienazwanymi, mogą być one ponumerowane, ale zmienna w tablicy może przyjmować wartość tą samą na różne sposoby, raz w sposób nazwany, a za innym sposobem jako nienazwany. Ogólnie ostateczne parametry łączymy w dane parametry za pomocą jednego sposobu, tzn. za pomocą tej funkcji, i dla tak uzyskanej tablicy tworzymy funkcję zwracaną przez funkcję w nagłówku, która przyjmuje parametr, który jest kluczem tej uzyskanej tablicy. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PobierzElementNumerowanyZFrameLubTablicy(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki tablicy transportu. }} Weźmy najprostszy sposób realizacji tej funkcji, w realizacji: {{Code|1-1, 2-2, 3-3}}, czyli ten opis jest zaraz poniżej. Weźmy funkcję, którą można wywoływać z wieloma parametrami, jak i w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, którą przykładowo piszemy jego wywołanie wewnątrz innej funkcji na pięć sposobów, czyli teraz pierwszy sposób z tylko z parametrem, więc tablicą ramki tablicy transportu wywodzącą się z ramki uruchomioną w wikikodzie w jakimś szablonie rodzicu: <syntaxhighlight lang="lua"> local wynik=p["Nazwa funkcji"](frame); </syntaxhighlight> a teraz drugi sposób, pisząc, bezpośrednio inaczej, formułując wywołanie tej funkcji, używając zmiennych tablicowych tablicy ramki, ale to nie jest tak naprawdę tablica ramka tablicy transportu, tylko parametr podany bezpośrednio do funkcji, tak jak się to robi w języku {{lpg|Lua}}, nie jak w przykładzie powyżej, więc: <syntaxhighlight lang="lua"> local wynik=p["Nazwa funkcji"]{args={"wartość1","wartość2","wartość3",},}; </syntaxhighlight> Lub równoważnie, pisząc, nie używając zmiennej {{Code|args}}: <syntaxhighlight lang="lua"> local wynik=p["Nazwa funkcji"]{"wartość1","wartość2","wartość3",}; </syntaxhighlight> Albo te parametry wsadzając do funkcji: <syntaxhighlight lang="lua"> local wynik=p["Nazwa funkcji"]("wartość1","wartość2","wartość3"); </syntaxhighlight> Można też wywołać to wszystko w ramce, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w wikikpdzie, wtedy wsadzając parametry do ramki: <syntaxhighlight lang="mediawiki"> {{#invoke:Nazwa modułu|Nazwa funkcji|wartość1|wartość2|wartość3}} </syntaxhighlight> A jak połączyć wszystkie te pięć sposobów, posługiwać się tymi sposobami wewnątrz funkcji {{Code|Nazwa funkcji}} w sposób jednolity, jedynie wtedy należy skorzystać z funkcji z definiowaną w jakimś module w sposób: <syntaxhighlight lang="lua"> local p={}; p["Nazwa funkcji"]=function(...) local tablica_prametrow_funkcji={...}; local parametry_modul=require("Module:Parametry"); local PobierzElementNumerowanyZFrameLubTablicy=parametry_modul.PobierzElementNumerowanyZFrameLubTablicy(tablica_prametrow_funkcji); ... end; </syntaxhighlight> Wtedy za pomocą zmiennej {{Code|PobierzElementNumerowanyZFrameLubTablicy}} dostaliśmy się do funkcji, która przyjmuje jedyny parametr, aby dostać się do elementów tablicy uzyskanej w wewnątrz tej funkcji, zdefiniowaną w tablicy {{Code|tablica_prametrow_funkcji}}, która jest nic innym jak zestawem parametrów w funkcji: {{Code|Nazwa funkcji}}. W pierwszym i drugim sposobem zmienna ta nazwijmy to jako {{Code|args}} jest zmienną z podtablicy innego {{Code|args}} przekazanych jako parametr tablicy do funkcji, w trzecim sposobie tą zmienną jest cała tablica, a czwartym jest zestaw parametrów. A czym się różnią się te sposoby, a więc te sposoby można powiązać jedną tylko funkcją powiedzianą w nagłówku według przykładu podaną zaraz powyżej, wtedy możemy dostawać się do tych samych zmiennych o takich samych nazwach i wartościach, ale w różnych reprezentacjach na różne sposoby, wtedy można powiedzieć, że: <syntaxhighlight lang="lua"> args[1]="wartość1"; args[2]="wartość2"; args[3]="wartość3"; </syntaxhighlight> Czyli w wyniku działania funkcji w nagłówku, otrzymamy funkcję zwracającą te wartości, która operuje na tej tablicy, której wynikiem jest zestaw zmiennych ponumerowanych, ogólnie nienazwanych, której wartości odpowiadają te podane w ramce ostatniej powyżej. Na podstawie tego wiemy, jak działa funkcja ta z nagłówka. Pisząc w inny sposób, można też wskazywać: <syntaxhighlight lang="lua"> local p={}; p["Nazwa funkcji"]=function(...) local tablica_prametrow_funkcji={...}; local parametry_modul=require("Module:Parametry"); local PobierzElementNumerowanyZFrameLubTablicy=parametry_modul.PobierzElementNumerowanyZFrameLubTablicy(tablica_prametrow_funkcji); local wartosc1=PobierzElementNumerowanyZFrameLubTablicy("nazwa1") or PobierzElementNumerowanyZFrameLubTablicy(1); local wartosc2=PobierzElementNumerowanyZFrameLubTablicy("nazwa2") or PobierzElementNumerowanyZFrameLubTablicy(2); local wartosc3=PobierzElementNumerowanyZFrameLubTablicy("nazwa3") or PobierzElementNumerowanyZFrameLubTablicy(3); end; </syntaxhighlight> Zmienne w przykładzie o kluczach: {{Code|nazwa1}}, {{Code|nazwa2}} i {{Code|nazwa3}}, posiadające pewne swoje wartości, to są zmienne w tablicy {{Code|tablica_prametrow_funkcji}}, podane też jako zmienne, jako pewne argumenty tablicy, który są w tej funkcji zwracanej jako argument (parametr) funkcji, jeżeli argumenty podano w postaci jednego parametru funkcji w postaci pewnej tablicy z np. elementami nazwanymi, lub jako wiele argumentów w ramce, w wikikodzie, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w pewnym szablonie, a rozpatrując dalej elementy względem ich nazw, np. alternatywnych, to te numery mogą być: {{Code|1}}, {{Code|2}} i {{Code|3}}, to jest numer parametru, jeżeli argumenty do funkcji podano w postaci wielu jego parametrów. == {{Code|p.PobierzParametr}} == Ta funkcja zwraca znów inną funkcję, która ma jedyny parametr, mówiący jakiego parametru poszukujemy, co jest wyjaśnione w definicji funkcji z nagłówka, że ona zwraca tą właśnie funkcje. Definicja skrótowa dunkcji: <syntaxhighlight lang="lua"> function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame) ... return function(nazwa) return __pobierz_parametr_table_args(nazwa); end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki tablicy transportu. | 2 = {{Code|czy_frame_lub_parent}} i {{Code|czy_frame}} | _2 = Parametry logiczne dodatkowe funkcji. }} Funkcja zwraca jednocześnie dwie wartości, ta zwrócona z funkcji z nagłówka, prawdziwą wartość, i numer metody w postaci: {{Code|return wartosc, numer_metody}}. Ta funkcja zwracana ma w swojej definicji inną jeszcze funkcję z tym samym parametrem, co jego rodzic, i to jest za każdym razem inna funkcja w zależności z jakim typem danych się posługujemy {{Code|frame}} i jakie podaliśmy parametry, tzn. pod warunkiem, gdy zmienna {{Code|frame}} jest tablicą, czyli te zmienne druga: {{Code|czy_frame_lub_parent}} (jeżeli funkcja jest uruchomiona w ramce w szablonie, jeżeli wartość {{Code|true}}, to ona wybiera raz parametr z: {{Code|frame.args[nazwa or 1]}}, a za innym razem z {{Code|pf.args[nazwa or 1]}}, gdzie {{Code|pf{{=}}frame:getParent()}}, tutaj jest zwracana wartość: {{Code|return wartosc,2}}), czy trzecia: {{Code|czy_frame}} (która mówi, jeżeli funkcję uruchomiono w ramce, ale przy wartości fałszywej tego pierwszego podanego parametru, mówi, że przy wartości {{Code|true}} tego parametru, wybierana jest zawsze wartość {{Code|frame.args[nazwa or 1}}}, w przeciwnym wypadku uruchamiana jest funkcja {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}, tutaj zwracana jest wartość {{Code|return wartosc,1}}). Jeżeli wartością {{Code|frame}} jest wartość nietablicowa, ale niebędącą wartością {{Code|nil}}, wtedy ustawiana jest funkcja, która tylko za pierwszym razem zwraca nienilową wartość {{Code|return wartosc,0}}, a później zwraca wartość {{Code|return nil,0}}. Gdy wartością {{Code|frame}} jest {{Code|nil}}, to funkcja zawsze wraca tą wartość {{Code|return nil,0}}. Powyższy sposób działa również dobrze, gdy zdefiniujemy w parametrach funkcji fałszywą funkcję {{Code|frame.getParent}}. Gdy funkcja nie jest uruchamiana w ramce lub funkcja {{Code|frame.getParent}} nie jest zdefiniowana, to wtedy funkcja wchodzi zawsze w ten jej krok, jakby {{Code|czy_frame_lub_parent}} było {{Code|false}} według tego powyżej, to wtedy brana jest zmienna {{Code|czy_frame}}, i jaką wartość ona przyjmuje. Funkcję pisze się według sposobu, którą się wywołuje według: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local wartosc1=PobierzParametr("nazwa1") or PobierzParametr(1); local wartosc2=PobierzParametr("nazwa2") or PobierzParametr(2); local wartosc3=PobierzParametr("nazwa3") or PobierzParametr(3); </syntaxhighlight> Na wypadek wartości nietabelowej, tą wartość zapisuje się jako pierwszą w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a dla wartości tabelowych, jaka jest kolejność to jest obojętne, byle by to było sensowne. Tę funkcję podobnie się wywołuje jak funkcję: {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}. Wartością {{Code|frame}} nie musi być tablica ramki tablicy transportu, równie dobrze może być to dowolna tablica lub wartość nietablicowa. Weźmy ramkę, w której uruchamiamy funkcję ramki: <syntaxhighlight lang="mediawiki"> {{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5|wyspecjalizowana=tak}} </syntaxhighlight> Ona musi być wywołana z parametrem {{Parametr|wyspecjalizowana|tak}}, jako podpowiedź, że liczą się parametry ramki dziecka, a nie jego rodzica, czyli szablonu. Wtedy funkcję {{Code|Nazwa funkcji}} definiujemy: <syntaxhighlight lang="lua"> local p={}; p["Nazwa funkcji"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame,true); ... end; </syntaxhighlight> Wtedy parametr {{Parametr|wyspecjalizowana|tak}} jest ignorowany, a przy wartości {{Code|false}} drugiego parametru funkcji, czyli wywołania: {{Code|local PobierzParametr{{=}}parametry_modul.PobierzParametr(frame,false);}}, już nie, ale nie zawsze. W takim przypadku według powyższego przykładu raz jest brana wartość, jeżeli istnieje, z {{Code|frame.args}}, a jak ona nie istnieje, to wtedy z: {{Code|pf.args}}. Weźmy inny przypadek: <syntaxhighlight lang="lua"> local p={}; p["Nazwa funkcji"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame,false,true); ... end; </syntaxhighlight> Przy tym też parametr: {{Parametr|wyspecjalizowana|tak}}, jest ignorowany, wtedy jest zawsze wybierana do rozważań tablica: {{Code|frame.args}}. Znów w innym przypadku, gdzie parametr: {{Parametr|wyspecjalizowana|tak}}, jest zawsze rozważany w naszym wypadku: <syntaxhighlight lang="lua"> local p={}; p["Nazwa funkcji"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame,false,false); ... end; </syntaxhighlight> To to wywołanie, wtedy dokładnie działa jak funkcja: {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}, a zwrócona funkcja: {{Code|PobierzParametr}} pobiera elementy z tak uzyskanej tablicy {{Code|args}} poprzez nią. W przypadku, gdy {{Code|frame}} nie jest tablicą, wtedy parametry: {{Code|czy_frame_lub_parent}} i {{Code|czy_frame}}, są w takim przypadku zawsze ignorowane, ale muszą być ustawione na wypadek, gdyby do funkcji {{Code|Nazwa funkcji}} wsadzono tablicę, np. z ramki, tzn. tablicę ramki funkcji tablicy transportu. Najprostszym często ogólnym przykładem, który prawie zawsze jest stosowany: <syntaxhighlight lang="lua"> local p={}; p["Nazwa funkcji"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); ... end; </syntaxhighlight> Wtedy parametr: {{Parametr|wyspecjalizowana|tak}}, jest prawie zawsze nieignorowany, ale nie zawsze. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3z9s2bumd6rzh6z73dq7hfkr583wzjn Wikibooks:Moduły/Parametry/Tom XV 4 63981 555649 553081 2026-09-11T05:51:12Z Persino 2851 555649 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} ; Funkcje wartości logicznej Funkcje te wykorzystują funkcję: {{Code|{{sr|#p["CzyTakCiąg"]|p=Parametry}}}}, jeżeli mamy ciąg składający się z samych znaków odstępu, to funkcja zwraca wartość odpowiadający wartości: {{Code|false}}, a dla innych wartości to działa jak: {{Code|true}}, dla instrukcji warunkowej: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}. == {{Code|p.And}} == Funkcja działa jak operator logiczny operatorowy: {{Code|and}}, w języku {{lpg|Lua}}. Funkcja służy jedynie do uruchamiania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, zamienia wartości parametrów składającą się z nie znaków odstępu i niebędące ciągami pustymi, na wartość składający się z ciągowi niepustemu, czyli {{Code|tak}}, w przeciwnym wypadku mamy wartość wyniku równą ciągowi pustemu. Funkcja zamienia wartości każdego parametru na wartości logiczne: {{Code|true}}/{{Code|false}} (według funkcji: {{Code|{{sr|#p["CzyTakCiąg"]|p=Parametry}}}}), i jeżeli wszystkie z tych wartości są równe wartości {{Code|true}}, to funkcja zwraca {{Code|tak}}, w przeciwnym wypadku zwraca wartość równą ciągowi pustemu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.And(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu modułu. }} Przykład działania funkcji w ramce {{Lpg|Lua}} w {{lpr|Lua|Scribunto}}, w wikikodzie w szablonie, bo ta funkcja służy do uruchamiania właśnie w szablonach, jest: <syntaxhighlight lang="mediawiki"> {{#if:{{#invoke:Parametry|And|wartość1|wartość2|wartość3}}|tak|nie}} </syntaxhighlight> W powyższym przykładzie wikikod z tą funkcją zwróci wartość {{Code|tak}}. A w przykładzie z przeciwną zwracaną wartością: <syntaxhighlight lang="mediawiki"> {{#if:{{#invoke:Parametry|And|wartość1||wartość3}}|tak|nie}} </syntaxhighlight> natomiast zostanie zwrócona wartość {{Code|nie}}. == {{Code|p.Or}} == Funkcja działa operator logiczny operatorowy: {{Code|or}}, w języku {{lpg|Lua}}. Funkcja służy jedynie do uruchamiania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, zamienia wartości parametrów składającą się, przynajmniej, któreś z nich, z nie znaków odstępu i niebędące ciągami pustymi, na wartość składający się z ciągowi niepustemu, czyli {{Code|tak}}, w w przeciwnym wypadku mamy wartość wyniku równą ciągowi pustemu. Funkcja zamienia wartości każdego parametru na wartości logiczne: {{Code|true}}/{{Code|false}} (według funkcji: {{Code|{{sr|#p["CzyTakCiąg"]|p=Parametry}}}}), i jeżeli z któreś z tych wartości jest {{Code|true}}, to funkcja zwraca {{Code|tak}}, w przeciwnym wypadku zwraca wartość równą ciągowi pustemu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Or(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu modułu. }} Przykład działania funkcji w ramce {{Lpg|Lua}} w {{lpr|Lua|Scribunto}}, w wikikodzie w szablonie, bo ta funkcja służy do uruchamiania właśnie w szablonach, jest: <syntaxhighlight lang="mediawiki"> {{#if:{{#invoke:Parametry|Or|wartość1||wartość3}}|tak|nie}} </syntaxhighlight> W powyższym przykładzieten wikikod z tą funkcją zwróci wartość {{Code|tak}}. A w przykładzie z przeciwną zwracaną wartością: <syntaxhighlight lang="mediawiki"> {{#if:{{#invoke:Parametry|Or|||}}|tak|nie}} </syntaxhighlight> natomiast zostanie zwrócona wartość {{Code|nie}}. == {{Code|p.Not}} == Funkcja działa jak operator logiczny operatorowy: {{Code|not}}, w języku {{lpg|Lua}}. Funkcja służy jedynie do uruchamiania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, zamienia wartość składającą się z nie znaków odstępu i niebędący ciągiem pustym, na wartość składający się z ciągu pustego, i odwrotnie, czyli wartość pustą na wartość mający w sobie inne znaki niż odstępu. Funkcja zamienia wartość pierwszego parametru na wartość logiczną: {{Code|true}}/{{Code|false}} (według funkcji: {{Code|{{sr|#p["CzyTakCiąg"]|p=Parametry}}}}), i zamienia ją na przeciwność, wartości {{Code|true}} odpowiada {{Code|tak}}, a {{Code|false}} odpowiada wartości pustej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Not(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu modułu. }} Przykład działania funkcji w ramce {{Lpg|Lua}} w {{lpr|Lua|Scribunto}}, w wikikodzie w szablonie, bo ta funkcja służy do uruchamiania właśnie w szablonach, jest: <syntaxhighlight lang="mediawiki"> {{#if:{{#invoke:Parametry|Not|tak}}|tak|nie}} </syntaxhighlight> W powyższym przykładzie wikikod z tą funkcją zwróci wartość {{Code|nie}}. A w przykładzie z przeciwną zwracaną wartością: <syntaxhighlight lang="mediawiki"> {{#if:{{#invoke:Parametry|Not|}}|tak|nie}} </syntaxhighlight> natomiast zostanie zwrócona wartość {{Code|tak}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> tkj6othqepq1zsfde9f6zj3t6del7hb Wikibooks:Moduły/Parametry/Tom XVI 4 63982 555653 553080 2026-09-11T05:56:51Z Persino 2851 /* {{Code|p.Mniejszy}} */ 555653 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje porównań. == {{Code|p.Mniejszy}} == Funkcja zastępuje parser logiczny: {{Code|{{s|#expr:coś|wtedy|przeciwnie}}}}, dla porównania dwóch wartości logicznych, działa on szybciej niż ten parser, bo on musi uwzględniać skomplikowaność wyrażeń matematycznych do policzenia, a nasza funkcja w języku: {{lpg|lua}} w {{lpr|Lua|Scribunto}}, już nie. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Mniejszy(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki tablicy transportu. }} Funkcja sprawdza, czy spełniona jest wartość mniejszości pierwszego parametru liczbowego: <syntaxhighlight lang="mediawiki"> {{#if:{{#invoke:Parametry|Mniejszy|5|3}}|tak|nie}} </syntaxhighlight> Powyższy wikikod z naszą funkcją, wtedy zrzuci wartość {{Code|nie}}, bo {{Code|5}} jest większe niż {{Code|3}}. Można też sprawdzić, czy liczba jest ujemna, za pomocą wywołania: <syntaxhighlight lang="mediawiki"> {{#if:{{#invoke:Parametry|Mniejszy|-5}}|tak|nie}} </syntaxhighlight> Powyższy wikikod z naszą funkcją, wtedy zrzuci wartość {{Code|tak}}. Można też sprawdzić, czy liczba jest dodatnia, za pomocą wywołania: <syntaxhighlight lang="mediawiki"> {{#if:{{#invoke:Parametry|Mniejszy|5}}|tak|nie}} </syntaxhighlight> Powyższy wikikod z naszą funkcją, wtedy zrzuci wartość {{Code|nie}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> bod7r2egkzhz0b35cbklenn26zkt8un Wikibooks:Moduły/Parametry/Tom XVII 4 63984 555650 553043 2026-09-11T05:51:51Z Persino 2851 /* {{Code|p.IlePodano}} */ 555650 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje mówiące, ile jest podanych elementów w szablonie według parametrów ramki. == {{Code|p.IlePodano}} == Funkcja sprawdza, ile jest podanych parametrów w parametrach rodzica szablonu z parametrów nazwanych lub nienazwanych, ale traktowanych jak nazwane, podanych w dziecku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IlePodano(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = tablica ramki funkcji tablicy transportu modułu. }} Wywołanie szablonu, w której jest wywołana funkcja: {{Code|{{m|Parametry|IlePodano}}}}, jako z parametrami, i nie tylko, podanymi w ramce tej funkcji w tym szablonie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa1=wartość1|nazwa2=wartość2|nazwa3=wartość3|wartość4|wartość5}} </syntaxhighlight> To wtedy wywołanie w nim naszej funkcji bibliotecznej w postaci ramki wygląda, jako: <syntaxhighlight lang="mediawiki"> {{#invoke:Parametry|IlePodano|nazwa1|nazwa3|2|nazwa4|5}} </syntaxhighlight> Funkcja zwróci wartość {{Code|3}}, a nie {{Code|5}}, bo trzy tylko parametry znaleziono w ramce wywołania szablonu, a parametr: {{Code|nazwa4}} i {{Code|5}}, tam wcale nie występują. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> bomb5o0mfxxswgit93imnp4uo3q0k55 Wikibooks:Moduły/Parametry/Tom XIX 4 63986 555651 553079 2026-09-11T05:54:19Z Persino 2851 555651 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} ; Iteratory Poniższe operatory możemy wykorzystać w funkcjach: analogicznego do {{Code|ipairs}}, dla iteratora: {{Code|{{sr|#p.IteratorPoNumerowanychElementachTablicy(t)|p=Parametry}}}}, wynikłej z jego funkcji z wartości zwracanej, i analogicznego do {{Code|next}} (iteratora po kluczach) w {{Code|pairs}}, dla iteratora: {{Code|{{sr|#p.IteratorKluczeTabeliAlfabetycznieSortujDoPrzodu(tabela,funkcja)|p=Parametry}}}}, wynikłe z jego funkcji z wartości zwracanej. == {{Code|p.IteratorPoNumerowanychElementachTablicy}} == Iterator służy do iterowania po kolei liczb w pewnych tablicach, używając do tego celu tej tablicy, zdefiniowanego iteratora. Można ją zdefiniować do obsługi innego iterowania po parametrach numerowanych, analogicznie do {{Code|ipairs}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorPoNumerowanychElementachTablicy(t) ... return function() ... end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|t}} | _1 = Tablica, po której iterujemy po elemenetach numerowanych. }} Przykład działania iteratora jest: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabela={1,2,3,4,5,6,7,8,9,10,}; local iter=parametry_modul.IteratorPoNumerowanychElementachTablicy(tablica); for name, value in iter do mw.log("Klucz:",klucz,"Wartość:",value); end; </syntaxhighlight> == {{Code|p.IteratorKluczeTabeliAlfabetycznieSortujDoPrzodu}} == Iterator służy do iterowania po kolei po zsortowanych kluczach po kolei alfabetycznie, którym są przyporządkowane wartości o pewnych tych kluczach w pewnych tablicach, używając do tego celu tablicy, zdefiniowanego iteratora, metatabelki i metafunkcji w niej zdefiniowanej, gdzie: {{Code|funkcja}}, jest funkcją sortującą łańcuchy znakowe. Można ją zdefiniować do obsługi innego iterowania po parametrach nazwanych za pomocą: {{Code|pairs}}, definiując funkcję: {{Code|__next}}, analoga do {{Code|next}}, jako iteratora po kluczach posortowanych, która jest wartością zwracaną przez funkcję w nagłówku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IteratorKluczeTabeliAlfabetycznieSortujDoPrzodu(tabela,funkcja) ... return function(tablica,klucz) ... end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela}} | _1 = Tabela, po której iterujemy. | 2 = {{Code|funkcja}} | _2 = Funkcja sortująca. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tablica}} | _1 = Tabela operowana. | 2 = {{Code|klucz}} | _2 = Klucz, dzięki któremu szukamy następny element. }} Zdefiniujmy metatablicę z metafunkcją: {{Code|__pairs}}, wtedy: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local tabela={["D"]="wartość1",["A"]="wartość2",["F"]="wartość3",["C"]="wartość4",}; local __metatabelka={}; __metatabelka.__pairs=function(t) local funkcja_sortujaca=nil; local __next=parametry_modul.IteratorKluczeTabeliAlfabetycznieSortujDoPrzodu(t,funkcja_sortujaca); return __next,t,nil; end; setmetatable(tabela,__metatabelka); for name,value in pairs(tabela) do mw.log("Klucz:",klucz,"Wartość:",value); end; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ik1u3dpuydtwt13z5ug2ybh1f1k34sw Wikibooks:Moduły/Parametry/Tom XX 4 63987 555652 553078 2026-09-11T05:55:25Z Persino 2851 555652 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Są tutaj przedstawione funkcje wartości minimalnej i maksymalnej. == {{Code|p.Max}} == Funkcja liczy maksimum dwóch podanych wartości, podaną w jednostkach bezwymiarowych. === Odpowiednik szablonowy === Dla wersji ramkowej uruchomioną w wikikodzie, np. szablonu: * {{Code|{{m|Parametry|Max|5|3}}}} → {{Tt|{{#invoke:Parametry|Max|5|3}}}} Dla wersji szablonowej, której odpowiednikami szablonowymi są: {{s|Max}} lub {{s|Maksimum}}, który można wykorzystać jej definicji wersję ramkową, ale niekoniecznie, a tutaj wykorzystuje parser {{Code|{{s|#expr:coś}}}}. * {{Code|{{s|Max|5|3}}}} → {{Tt|{{Max|5|3}}}} Ta wersja szablonowa wykorzystuje funkcję: {{s|W pikselach}}, do zamiany tej samej liczby, ale też w różnych jednostkach bezwzględnych, z mianem na końcu, w liczbę pikseli podaną bez wymiarowo. Wywołanie: {{Code|{{m|Parametry|Max|5|3}}}}, zajmuje mniej zasobów niż: {{Code|{{s|Max}}}}, bo to ostatnie wykorzystuje do liczenia pracochłonną funkcję: {{m|Plik|W pikselach}}, a to pierwsze już nie, liczy maksimum bezpośrednio. === Funkcja biblioteczna === Funkcja do wywołania w ramce dla dwóch parametrów licząca ich maksimum. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Max(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki tablicy transportu. }} W ramce można go wywołać bezpośrednio, dla przykładu dwóch naturalnych parametrów, ale one mogą być też rzeczywiste: <syntaxhighlight lang="lua"> {{#invoke:Parametry|Max|5|3}} </syntaxhighlight> Wynikiem tego jest maksimum z tych liczb równą: {{Code|5}}. Tę funkcję można wykorzystać bez pośrednio w programie {{lpg|Lua}} do liczenia maksimów dwóch liczb. Ten kod piszemy: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local maksimum=parametry_modul.Max(5,3); </syntaxhighlight> Wartością z dwóch liczb jest wartość maksymalna: {{Code|5}}. Widzimy, że w parametrach funkcji nie musimy wykorzystywać żadnej tablicy ramki, bo ona wykorzystuje funkcję: {{Code|{{sr|#p.PobierzElementNumerowanyZFrameLubTablicy(frame)|p=Parametry}}}}, do liczenia parametrów tego obiektu, by uzyskać argumenty podane w parametrach tej funkcji, czy to w wersji wywołaną w ramce, czy jako w zwykłej funkcji. == {{Code|p.Min}} == Funkcja liczy minimum dwóch podanych liczb, podaną w jednostkach bezwymiarowych. === Odpowiednik szablonowy === Dla wersji ramkowej uruchomioną w wikikodzie, np. szablonu: * {{Code|{{m|Parametry|Min|5|3}}}} → {{Tt|{{#invoke:Parametry|Min|5|3}}}} Dla wersji szablonowej, której odpowiednikami szablonowymi są: {{s|Min}} lub {{s|Minimum}}, który można wykorzystać jej definicji wersję ramkową, ale niekoniecznie, a tutaj wykorzystuje parser {{Code|{{s|#expr:coś}}}}. * {{Code|{{s|Min|5|3}}}} → {{Tt|{{Min|5|3}}}} Ta wersja szablonowa wykorzystuje funkcję: {{s|W pikselach}}, do zamiany tej samej liczby, ale też w różnych jednostkach bezwzględnych, z mianem na końcu, w liczbę pikseli podaną bez wymiarowo. Wywołanie: {{Code|{{m|Parametry|Min|5|3}}}}, zajmuje mniej zasobów niż: {{Code|{{s|Min}}}}, bo to ostatnie wykorzystuje do liczenia pracochłonną funkcję: {{m|Plik|W pikselach}}, a to pierwsze już nie, liczy minimum bezpośrednio. === Funkcja biblioteczna === Funkcja do wywołania w ramce dla dwóch parametrów licząca ich minimum. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Min(frame)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|frame}} | _1 = Tablica ramki tablicy transportu. }} W ramce można go wywołać bezpośrednio, dla przykładu dwóch naturalnych parametrów, ale one mogą być też rzeczywiste: <syntaxhighlight lang="lua"> {{#invoke:Parametry|Min|5|3}} </syntaxhighlight> Wynikiem tego jest minimum równą: {{Code|3}}. Tę funkcję można wykorzystać bez pośrednio w programie {{lpg|Lua}} do liczenia minimów dwóch liczb. Ten kod piszemy: <syntaxhighlight lang="lua"> local parametry_modul=require("Module:Parametry"); local minimum=parametry_modul.Min(5,3); </syntaxhighlight> Wartością minimalną z dwóch liczb jest: {{Code|3}}. Widzimy, że w parametrach funkcji nie musimy wykorzystywać żadnej tablicy ramki, bo ona wykorzystuje funkcję: {{Code|{{sr|#p.PobierzElementNumerowanyZFrameLubTablicy(frame)|p=Parametry}}}}, do liczenia parametrów tego obiektu, by uzyskać argumenty podane w parametrach tej funkcji, czy to w wersji wywołaną w ramce, czy jako w zwykłej funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4gygpmfvn7moyodq3p6h92e5zre1bjh Szablon:OpisParametrów 10 64146 555463 2026-09-10T15:38:47Z Persino 2851 Utworzono nową stronę „<includeonly> {| class="wikitable" style="margin-top:0" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}</includeonly><noinclude>{{Dokumentacja}}</noinclude>” 555463 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}</includeonly><noinclude>{{Dokumentacja}}</noinclude> emdo73qjlvq2hluzndo4xa9utx20wok 555464 555463 2026-09-10T15:39:46Z Persino 2851 555464 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 1ar0g0y6iph50t6fxmz6hkmcjgir8h4 555465 555464 2026-09-10T15:43:27Z Persino 2851 555465 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;text-align:left;" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}</includeonly><noinclude>{{Dokumentacja}}</noinclude> j73cqa0rycbvtxtxsjbk5fzpxn34u5c 555466 555465 2026-09-10T15:45:00Z Persino 2851 555466 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style="text-align:left" {{!}}{{((}}_{{))}} ! style="text-align:left" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style="text-align:left" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 6lg4f38f4lazpy5x3wu1zqxsqcuy7gj 555467 555466 2026-09-10T15:45:35Z Persino 2851 555467 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"text-align:left" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}</includeonly><noinclude>{{Dokumentacja}}</noinclude> gtoztsta5j3c1ik7g5ljrpf87ar0rgz 555468 555467 2026-09-10T15:46:47Z Persino 2851 555468 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"text-align:left" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}</includeonly><noinclude>{{Dokumentacja}}</noinclude> dcoya0e7w84phft9bq2lol42205499p 555470 555468 2026-09-10T15:48:46Z Persino 2851 555470 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"text-align:left" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;color:blue;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}</includeonly><noinclude>{{Dokumentacja}}</noinclude> itit7l4v6pdbms5rtpu240olfy1881t 555471 555470 2026-09-10T15:49:19Z Persino 2851 555471 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"text-align:left" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}</includeonly><noinclude>{{Dokumentacja}}</noinclude> dcoya0e7w84phft9bq2lol42205499p 555472 555471 2026-09-10T15:59:10Z Persino 2851 555472 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"text-align:left" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> pp9ha4ogzk804ho228wb5so5phjlpvn 555473 555472 2026-09-10T16:05:52Z Persino 2851 555473 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"width:text-align:left;width:auto;" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;width:auto;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left;width:100%;" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> cz64iup0rkm7yf27phdrkvqul7oyxtb 555474 555473 2026-09-10T16:06:41Z Persino 2851 555474 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"width:text-align:left;width:auto;" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;width:auto;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left;" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 8seff3wz4adzwpbct3i5idgysbjpt9f 555475 555474 2026-09-10T16:07:42Z Persino 2851 555475 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! Lp. ! Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"width:text-align:left;width:width:50px;" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;width:auto;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left;" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> iv2sminr4anzs188v79oipg2fuy6xq8 555476 555475 2026-09-10T16:09:30Z Persino 2851 555476 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! width="2%" {{!}} Lp. ! width="30%" {{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"width:text-align:left;" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left;" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> e8f2sqhex6i4w2ap42kzt86xel1q808 555477 555476 2026-09-10T16:10:30Z Persino 2851 555477 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! width="2%" style="white-space:nowrap;"{{!}} Lp. ! width="30%" {{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"width:text-align:left;" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left;" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> dff4neb5xw3sjasepennoj4m7hprps5 555478 555477 2026-09-10T16:11:15Z Persino 2851 555478 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! width="2%" style="white-space:nowrap;"{{!}} Lp. ! width="25%" {{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"width:text-align:left;" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left;" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> kgdwljdpeufss6qcx4mba5qq7mx4zkl 555479 555478 2026-09-10T16:11:53Z Persino 2851 555479 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! width="2%" style="white-space:nowrap;"{{!}} Lp. ! width="28%" {{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"width:text-align:left;" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left;" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> r6vsal552m3d54ysvbonfw3a819ofah 555480 555479 2026-09-10T16:12:49Z Persino 2851 555480 wikitext text/x-wiki <includeonly> {| class="wikitable" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- ! width="2%" style="white-space:nowrap;"{{!}} Lp. ! width="30%" {{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}} style{{=}}"width:text-align:left;" {{!}}{{((}}_{{))}} ! style{{=}}"text-align:left;font-weight:normal;" {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}} style{{=}}"text-align:left;" {{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> dff4neb5xw3sjasepennoj4m7hprps5 555484 555480 2026-09-10T16:23:13Z Persino 2851 555484 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:ListaParametrów/styles.css" /> {| class="wikitable ListaParametrów" style="margin-top:0;margin-right:0;margin-left:0;width:100%;box-sizing:border-box;" |- !{{!}} Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> bqe8pwy8lur1byuozwntj75jmw7w5f2 555486 555484 2026-09-10T16:38:23Z Persino 2851 555486 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:ListaParametrów/styles.css" /> {| class="wikitable ListaParametrów" |- !{{!}} Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> s7y4xajazfyyyvrwkb8x3xqasjw88aw 555517 555486 2026-09-10T18:35:13Z Persino 2851 555517 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:ListaParametrów/styles.css" /> {| class="wikitable ListaParametrów" |- !{{!}} Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{Div start}}{{(((}}_{{((}}_{{))}}{{)))}}{{Div koniec}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> gq0pbviu9sco06bvrsj7o7rnh20y5sk 555518 555517 2026-09-10T18:36:40Z Persino 2851 555518 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:ListaParametrów/styles.css" /> {| class="wikitable ListaParametrów" |- !{{!}} Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> s7y4xajazfyyyvrwkb8x3xqasjw88aw 555520 555518 2026-09-10T18:50:20Z Persino 2851 555520 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:ListaParametrów/styles.css" /> {| class="wikitable ListaParametrów" |- !{{!}} Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} {{!}}{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> lfo4o1o0flexwm6usb4z2apj7d2k5j6 555521 555520 2026-09-10T18:51:27Z Persino 2851 555521 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:ListaParametrów/styles.css" /> {| class="wikitable ListaParametrów" |- !{{!}} Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> s7y4xajazfyyyvrwkb8x3xqasjw88aw 555537 555521 2026-09-10T21:28:58Z Persino 2851 555537 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}} Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> dov7x66c8saqdx616or38alhz3qt0gb 555538 555537 2026-09-10T21:29:24Z Persino 2851 Persino przeniósł(-osła) stronę [[Szablon:ListaParametrów]] do [[Szablon:OpisParametrów]], bez pozostawienia przekierowania pod starym tytułem 555537 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}} Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> dov7x66c8saqdx616or38alhz3qt0gb 555544 555538 2026-09-10T21:54:29Z Persino 2851 555544 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{!}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 4a6yu485t66n2342ppxqmxm07ibyjm5 555550 555544 2026-09-10T23:20:17Z Persino 2851 555550 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}__!__{{!}}!{{))}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 5tdlh9n6u0ipgecw69tui0tqb75o7lu 555552 555550 2026-09-10T23:22:46Z Persino 2851 555552 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}!{{!}}__!__{{))}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 18jh69pqd8dbv1obialpw4fo7gtpxzj 555553 555552 2026-09-10T23:24:56Z Persino 2851 555553 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Rozwiń|{{#invoke:Ramka|Powtarzaj|nie rozwiń=tak {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}!{{!}}__!__{{))}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 7qozprk1ijhe6cgwwfb6t80dhyss5lt 555554 555553 2026-09-10T23:28:06Z Persino 2851 555554 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Rozwiń|{{#invoke:Ramka|Powtarzaj|nie rozwiń=tak|warunkowe=tak {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}!{{!}}__!__{{))}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> om8hj57mt1wqe469cft05tj3tvrt8gw 555555 555554 2026-09-10T23:33:45Z Persino 2851 555555 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=|warunkowe=tak {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}!{{!}}__!__{{))}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> rckph8x7xvjl4a9j15300s4y2whxiuc 555556 555555 2026-09-10T23:35:32Z Persino 2851 555556 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=tak|warunkowe=tak {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}!{{!}}__!__{{))}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 5rj8vhvtdyu6kd563oli94aq3xkto1s 555557 555556 2026-09-10T23:37:01Z Persino 2851 555557 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=tak|warunkowe=tak {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}!{{!}}{{((}}!{{))}}{{))}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> i7fxk0igwwztvts9yxm4csyoo0bthw8 555558 555557 2026-09-10T23:37:40Z Persino 2851 555558 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=tak|warunkowe= {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}!{{!}}{{((}}!{{))}}{{))}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> aia44oggslhciehx2pm008b0wtfpp3x 555559 555558 2026-09-10T23:45:57Z Persino 2851 555559 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=|warunkowe=tak| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}!{{!}}__!__{{))}}{{))}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 9qktvtpz36wfa66yx9huwmjmb44lafv 555561 555559 2026-09-10T23:58:05Z Persino 2851 555561 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} !{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}!{{!}}{{((}}!{{))}}{{))}}{{!}}{{(((}}_{{((}}_{{))}}{{)))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> gk10w7air4zmj04vvgg6i6gb7lkr5xw 555562 555561 2026-09-11T00:04:43Z Persino 2851 555562 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}2 {{))}} {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}}{{(((}}_{{((}}_{{))}}{{)))}}{{))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> qinra52m7vrpndaloe1uoik8rgubb4c 555563 555562 2026-09-11T00:09:27Z Persino 2851 555563 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" {{))}} {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}}{{(((}}_{{((}}_{{))}}{{)))}}{{))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> ho506jlbdwig44rxmknkl859kafllel 555564 555563 2026-09-11T00:12:05Z Persino 2851 555564 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" {{))}} {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}}{{(((}}_{{((}}_{{))}}{{)))}}{{))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> s146zellt3s0fixkdfdixbabbszo0zq 555565 555564 2026-09-11T00:13:34Z Persino 2851 555565 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" {{))}} {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}}{{(((}}_{{((}}_{{))}}{{)))}}{{))}} }} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 0wwpvr9487tz1z21oyc6p85rz921ke8 555566 555565 2026-09-11T00:17:39Z Persino 2851 555566 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" {{))}} {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}}{{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 79shvfseqd3sthxpllwpahlkaff82w9 555567 555566 2026-09-11T00:25:58Z Persino 2851 555567 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" {{))}} {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}}{{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> hoxhd3awkfqglfcvrlhpph7u14dp8k8 555568 555567 2026-09-11T00:29:23Z Persino 2851 555568 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" {{))}} {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}}{{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> r5wwdy22zohrclm14wd14f5896b53rz 555570 555568 2026-09-11T00:32:23Z Persino 2851 555570 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" {{))}} {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}}{{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> kn1jcqgd0nb1au289nsa4pg6kwlszxi 555571 555570 2026-09-11T00:34:28Z Persino 2851 555571 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}}{{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}}{{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> bmcsib9h0noo96v3na772o95ast0b49 555588 555571 2026-09-11T01:08:25Z Persino 2851 555588 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}} {{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}} {{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> fdnhu3xejx0jrsb4zuxe630fkipuqi8 555599 555588 2026-09-11T01:53:34Z Persino 2851 555599 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}} {{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}} {{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?{{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}}_{{((}}_{{))}}{{=}}{{))}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 6k3xw53ovbibhfcu6200yb46n2ub2rf 555600 555599 2026-09-11T02:05:40Z Persino 2851 Anulowano wersję [[Special:Diff/555599|555599]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]]) 555600 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}} {{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}} {{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?{{!}}_{{((}}_{{))}}{{=}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> fdnhu3xejx0jrsb4zuxe630fkipuqi8 555601 555600 2026-09-11T02:07:13Z Persino 2851 555601 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}} {{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}} {{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?{{!}}_{{((}}_{{))}}{{=}};nagłówek?}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> ddteyfsnfkxsxrai3mh5oohq3e63jma 555602 555601 2026-09-11T02:08:33Z Persino 2851 555602 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}} {{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}} {{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?{{!}}_{{((}}_{{))}}{{=}};nagłówek{{((}}_{{))}}?}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> qv96d59r19jezlqtq6ls2j3zk04ieum 555603 555602 2026-09-11T02:09:59Z Persino 2851 555603 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}} {{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}} {{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?{{!}}_{{((}}_{{))}}{{=}};!nagłówek{{((}}_{{))}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 3ssbzxmlnxhn6jz0ugh2yaje20rgi4v 555604 555603 2026-09-11T02:13:03Z Persino 2851 555604 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}} {{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}} {{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?;_{{((}}_{{))}}{{!}}_{{((}}_{{))}}{{=}};nagłówek{{((}}_{{))}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> g1sijfkhr8ly4gzv91hu73hwo0q0ht5 555610 555604 2026-09-11T02:42:21Z Persino 2851 555610 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2" class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}} {{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}} {{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?;_{{((}}_{{))}}{{!}}_{{((}}_{{))}}{{=}}txt?!;nagłówek{{((}}_{{))}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> eiu6lk1inmaydihwhxu2m5luc4csbjz 555658 555610 2026-09-11T06:51:23Z Persino 2851 555658 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}}{{!}}{{((}}_{{))}} ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2"{{))}} {{!}} {{(((}}{{((}}_{{))}}{{)))}} {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}} {{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?;_{{((}}_{{))}}{{!}}_{{((}}_{{))}}{{=}}txt?!;nagłówek{{((}}_{{))}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> fx1sgfyv23zzc77nzwyn78vt5ystbof 555665 555658 2026-09-11T07:19:10Z Persino 2851 555665 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:OpisParametrów/styles.css" /> {| class="wikitable OpisParametrów" |- !{{!}}Lp. !{{!}}Parametr ! Opis {{#invoke:Ramka|Powtarzaj|nie rozwiń=| {{!}}- {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} class{{=}}"OpisParametrów-nagłówek"{{))}} {{!}}{{!}}<div>{{((}}_{{))}}</div> ! {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}} colspan{{=}}"2"{{))}} {{!}} <div>{{(((}}{{((}}_{{))}}{{)))}}</div> {{((}}#if:{{(((}}nagłówek{{((}}_{{))}}{{!}}{{)))}}{{!}}{{!}}{{((}}!{{))}} {{(((}}_{{((}}_{{))}}{{)))}}{{))}}}} |}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Ramka|Rozwiń|{{((}}#invoke:Sprawdź{{!}}Parametry{{!}}{{=}}problemy-w-szablonie-%s {{((}}(({{))}}Kategoria{{((}}!{{))}}Szablon %s do sprawdzenia{{((}})){{))}}{{#invoke:Ramka|Powtarzaj|po kolei=tak|nie rozwiń=tak|{{!}}{{((}}_{{))}}{{=}}txt!{{!}}nagłówek{{((}}_{{))}}{{=}}txt?;_{{((}}_{{))}}{{!}}_{{((}}_{{))}}{{=}}txt?!;nagłówek{{((}}_{{))}}}}{{))}} }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 70rbm8mcp69aciassd1wv7j539ub3g9 Szablon:OpisParametrów/styles.css 10 64147 555482 2026-09-10T16:15:54Z Persino 2851 Utworzono nową stronę „ /*{{Kategoria|Szablony - arkusze stylów}}*/” 555482 sanitized-css text/css /*{{Kategoria|Szablony - arkusze stylów}}*/ hxspmb4z21qelud2is2r4rgdv9yfm2p 555483 555482 2026-09-10T16:23:08Z Persino 2851 555483 sanitized-css text/css .ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } .ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } .ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } .ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } .ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } .ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } /*{{Kategoria|Szablony - arkusze stylów}}*/ j0pm8wvokdxofumdw4c0eh441vi6tc3 555485 555483 2026-09-10T16:33:11Z Persino 2851 555485 sanitized-css text/css .ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } .ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } .ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } .ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } .ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } .ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ .ListaParametrów{ display:flex; flex-direction:row; width:100%; } .ListaParametrów > tbody{ display:flex; flex-direction:column; width:100%; } .ListaParametrów > tbody > tr{ display:flex; flex-direction:column; flex-wrap:wrap; width:100%; } .ListaParametrów > tbody > tr > *:first-child{ width:30px; } .ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 30px ); } .ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100%; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ l5vtmj7ix4gqi5oze6ja9sypmi7wx1t 555487 555485 2026-09-10T16:39:19Z Persino 2851 555487 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex; flex-direction:column; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr > *:first-child{ width:30px; } table.ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 30px ); } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100%; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ egh9n17d2rwfdp0ougngdl05buw85rw 555488 555487 2026-09-10T16:42:04Z Persino 2851 555488 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex; flex-direction:column; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr > *:first-child{ width:30px !important; } table.ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 30px ) !important; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ q17k8oihvmuwlp4js5w4au35cfvvffk 555489 555488 2026-09-10T16:44:29Z Persino 2851 555489 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex; flex-direction:column; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block; } table.ListaParametrów > tbody > tr > *:first-child{ width:30px !important; } table.ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 30px ) !important; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ tu8d12b12hox8ciudnbfcacudw7wdao 555490 555489 2026-09-10T16:49:00Z Persino 2851 555490 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:column; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ width:30px !important; } table.ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 30px ) !important; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ brxrm5zsyrqvsm4cs2dlmtni09bobzp 555491 555490 2026-09-10T16:51:09Z Persino 2851 555491 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ width:30px !important; } table.ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 30px ) !important; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ 2gl81nooxkiqp4bba9s9k787a80rxma 555492 555491 2026-09-10T16:56:15Z Persino 2851 555492 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ width:30px !important; } table.ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 30px ) !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ c27z04dl1q0wrgxew3cicw3ef30q04u 555493 555492 2026-09-10T16:58:35Z Persino 2851 555493 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ width:30px !important; } table.ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 30px ) !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ f8icavj57wwrbtaixqwzp44oc2083uq 555494 555493 2026-09-10T17:01:44Z Persino 2851 555494 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child{ width:30px !important; border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 30px ) !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ o8lay3efc6i5gal51gnk6cqsk5hypjl 555495 555494 2026-09-10T17:06:53Z Persino 2851 555495 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ min-width:30px !important; border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 45px ) !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ fsnsz6g3v8zwccsuc8pxi273lepat17 555496 555495 2026-09-10T17:10:13Z Persino 2851 555496 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ min-width:30px !important; border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 45px ) !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ cq7whj0our4begl764pvd2ehlp39elj 555497 555496 2026-09-10T17:11:22Z Persino 2851 555497 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ min-width:30px !important; border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ width:calc( 100% - 45px ) !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ shd2me1981p32r4zdcw0b7l25jbdpx5 555504 555497 2026-09-10T17:34:24Z Persino 2851 555504 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ min-width:30px !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ width:5rem !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ width:calc( 100% - 45px - 5rem ) !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ width:calc( 100% - 45px ) !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ qz7n8y61s9nvm6dm3iwib8f9ps0x8d5 555505 555504 2026-09-10T17:39:27Z Persino 2851 555505 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:45px !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ width:5rem !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 45px - 5rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ width:calc( 100% - 45px ) !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ i9zt439x7hwlwdzj1r4hhv58decjinb 555506 555505 2026-09-10T17:40:43Z Persino 2851 555506 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:45px !important; min-width:45px !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 45px - 5rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ width:calc( 100% - 45px ) !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ rv53dc4znd6o4ja939zoh1t2b22p5o8 555507 555506 2026-09-10T17:42:35Z Persino 2851 555507 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:30px !important; min-width:30px !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 30px - 5rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ width:calc( 100% - 30px ) !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ 60ltooa4bccko6gfe9dbbbvh7wpdvfu 555508 555507 2026-09-10T17:47:36Z Persino 2851 555508 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:30px !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 30px - 5rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 30px ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ bwo2k7l29g67bxq9209svj5nrubmzdg 555509 555508 2026-09-10T18:05:45Z Persino 2851 555509 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ qstmdteiqs4n0zdkwwnlnjz1b27ac7j 555510 555509 2026-09-10T18:08:15Z Persino 2851 555510 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem - 1.35rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem - 0.92rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ autudo8tgx36uyoc88p724gt5z3phbt 555511 555510 2026-09-10T18:11:43Z Persino 2851 555511 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } table.ListaParametrów > tbody > tr > th:first-child{ display:flex; flex-direction:column; align-items: stretch; justify-content: center; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem - 1.35rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem - 0.92rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ ala3sq6yq57a9c1zr8blk10zfjgm9vp 555512 555511 2026-09-10T18:15:47Z Persino 2851 555512 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } table.ListaParametrów > tbody > tr > th:first-child{ display:flex !important; flex-direction:column; align-items: stretch; justify-content: center; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem - 1.35rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem - 0.92rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ o97sg360zip1om2bb2rcha52booxcii 555513 555512 2026-09-10T18:19:33Z Persino 2851 555513 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:left; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr > th:first-child{ display:flex !important; flex-direction:column; align-items: stretch; justify-content: center; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem - 1.35rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem - 0.92rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ gfr786o2kgyc5emp4r42zi54at3gecx 555514 555513 2026-09-10T18:22:30Z Persino 2851 555514 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr > th:first-child{ display:flex !important; flex-direction:column; align-items: stretch; justify-content: center; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem - 1.35rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem - 0.92rem ) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ cay1n05rc2pizcvjb4jqb9uc1dd8e3b 555515 555514 2026-09-10T18:29:34Z Persino 2851 555515 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów, table.ListaParametrów > tbody, table.ListaParametrów > tbody > tr, table.ListaParametrów > tbody > tr > th, table.ListaParametrów > tbody > tr > td{ box-sizing:border-box; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr > th:first-child{ display:flex !important; flex-direction:column; align-items: stretch; justify-content: center; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ 2tyx1e2sa5hy9goidj63p5dtzybr62u 555516 555515 2026-09-10T18:34:09Z Persino 2851 555516 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów, table.ListaParametrów > tbody, table.ListaParametrów > tbody > tr, table.ListaParametrów > tbody > tr > th, table.ListaParametrów > tbody > tr > td{ box-sizing:border-box; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr > th, table.ListaParametrów > tbody > tr > td{ display:flex !important; flex-direction:column; align-items: stretch; justify-content: center; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ bj13mddt1kbiyeu4xgh2tyfmyu6qjso 555519 555516 2026-09-10T18:37:25Z Persino 2851 555519 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów, table.ListaParametrów > tbody, table.ListaParametrów > tbody > tr, table.ListaParametrów > tbody > tr > th, table.ListaParametrów > tbody > tr > td{ box-sizing:border-box; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ f0wcfr091e15a9fqqzn9dbgw7hd9t9x 555534 555519 2026-09-10T20:32:27Z Persino 2851 555534 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; } table.ListaParametrów > tbody{ display:table; width:100%; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów, table.ListaParametrów > tbody, table.ListaParametrów > tbody > tr, table.ListaParametrów > tbody > tr > th, table.ListaParametrów > tbody > tr > td{ box-sizing:border-box; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ hi1fkb4kfsm48hfel9lt6l8o9mdnw6h 555535 555534 2026-09-10T20:33:03Z Persino 2851 555535 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; } table.ListaParametrów > tbody{ display:table; width:100%; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów, table.ListaParametrów > tbody, table.ListaParametrów > tbody > tr, table.ListaParametrów > tbody > tr > th, table.ListaParametrów > tbody > tr > td{ box-sizing:border-box; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ 3oxjap9difkb8sb8wmhibi9v6pwkepb 555536 555535 2026-09-10T20:35:42Z Persino 2851 555536 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.ListaParametrów > tbody{ display:table; width:100%; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów, table.ListaParametrów > tbody, table.ListaParametrów > tbody > tr, table.ListaParametrów > tbody > tr > th, table.ListaParametrów > tbody > tr > td{ box-sizing:border-box; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ s68yzrj7t8yy58ma7m508rkhhnivwrj 555540 555536 2026-09-10T21:29:25Z Persino 2851 Persino przeniósł(-osła) stronę [[Szablon:ListaParametrów/styles.css]] do [[Szablon:OpisParametrów/styles.css]], bez pozostawienia przekierowania pod starym tytułem 555536 sanitized-css text/css table.ListaParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.ListaParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.ListaParametrów > tbody{ display:table; width:100%; } table.ListaParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.ListaParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.ListaParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.ListaParametrów{ display:flex !important; flex-direction:row; width:100%; } table.ListaParametrów, table.ListaParametrów > tbody, table.ListaParametrów > tbody > tr, table.ListaParametrów > tbody > tr > th, table.ListaParametrów > tbody > tr > td{ box-sizing:border-box; } table.ListaParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.ListaParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.ListaParametrów > tbody > tr> th, table.ListaParametrów > tbody > tr> td{ display:block !important; } table.ListaParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.ListaParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.ListaParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.ListaParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.ListaParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ s68yzrj7t8yy58ma7m508rkhhnivwrj 555541 555540 2026-09-10T21:30:25Z Persino 2851 555541 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th, table.OpisParametrów > tbody > tr> td{ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ pu3j59ky45z39y6a3dsa7ifsslakcp2 555569 555541 2026-09-11T00:30:57Z Persino 2851 555569 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek{ text-align:center; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th, table.OpisParametrów > tbody > tr> td{ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ lxuqvxbtzd1altwc25iov1y33odxwok 555572 555569 2026-09-11T00:35:43Z Persino 2851 555572 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek{ text-align:center !important; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th, table.OpisParametrów > tbody > tr> td{ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ oyihketiwq3lst3h9q0g6ftgbb2ttxc 555573 555572 2026-09-11T00:36:56Z Persino 2851 555573 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek{ text-align:center !important; color:white; background-color:black; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th, table.OpisParametrów > tbody > tr> td{ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ hrq7k0zu209ol0weuqp8t2d0xhfa2mb 555575 555573 2026-09-11T00:40:29Z Persino 2851 555575 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek, table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek span.link > a{ text-align:center !important; color:white; background-color:black; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th, table.OpisParametrów > tbody > tr> td{ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ q5joslw9ism9dt2ilv56itldzp2xzvp 555576 555575 2026-09-11T00:41:42Z Persino 2851 555576 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek, table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek span.link > a{ text-align:center !important; color:white; background-color:black; } table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek span.link > a{ text-decoration:underline; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th, table.OpisParametrów > tbody > tr> td{ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ dc46tj1sx08ko9g473x0spw5c8krauv 555590 555576 2026-09-11T01:14:12Z Persino 2851 555590 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek, table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek span.link > a{ text-align:center !important; color:white; background-color:black; } table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek span.link > a{ text-decoration:underline; } table.OpisParametrów > tbody > tr > th.OpisParametrów-nagłówek code{ color:unset; background-color:unset; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th, table.OpisParametrów > tbody > tr> td{ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ mcgk1sg4o9oz92ynafjtgd50v29l60a 555659 555590 2026-09-11T06:52:33Z Persino 2851 555659 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th, table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th span.link > a{ text-align:center !important; color:white; background-color:black; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th span.link > a{ text-decoration:underline; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th code{ color:unset; background-color:unset; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th, table.OpisParametrów > tbody > tr> td{ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; border-bottom:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr > *:first-child + *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ btf3bd7k4km3mzuvwqn5g2fulz8b86h 555660 555659 2026-09-11T06:55:27Z Persino 2851 555660 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th, table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th span.link > a{ text-align:center !important; color:white; background-color:black; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th span.link > a{ text-decoration:underline; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th code{ color:unset; background-color:unset; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th, table.OpisParametrów > tbody > tr> td{ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(.OpisParametrów-nagłówek) > *:first-child, table.OpisParametrów > tbody > tr > *:first-child + *, table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ 2oqku2t5ee68e30ok60aa73rc5n1l79 555662 555660 2026-09-11T07:12:05Z Persino 2851 555662 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th, table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th span.link > a{ text-align:center !important; color:white; background-color:black; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th span.link > a{ text-decoration:underline; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th code{ color:unset; background-color:unset; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th, table.OpisParametrów > tbody > tr> td{ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(.OpisParametrów-nagłówek):last-child > *:first-child, table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child, table.OpisParametrów > tbody > tr > *:first-child + *, table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ igj2na550qg2nfrqfn6z1adpqivts1z 555663 555662 2026-09-11T07:14:03Z Persino 2851 555663 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th, table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th span.link > a{ text-align:center !important; color:white; background-color:black; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th span.link > a{ text-decoration:underline; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th code{ color:unset; background-color:unset; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th, table.OpisParametrów > tbody > tr> td{ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; display:flex; flex-direction:column; align-items: stretch; justify-content: center; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(.OpisParametrów-nagłówek):last-child > *:first-child, table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child, table.OpisParametrów > tbody > tr > *:first-child + *, table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ 6cuinc73ovtcyg58xt4rzeiveno5hxu 555664 555663 2026-09-11T07:17:29Z Persino 2851 555664 sanitized-css text/css table.OpisParametrów{ margin-top:0; margin-right:0; margin-left:0; width:100%; box-sizing:border-box; } table.OpisParametrów{ display:flex; flex-direction:row; width:auto; max-width:100%; flex-shrink: 1; border:0; overflow:auto; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th, table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th span.link > a{ text-align:center !important; color:white; background-color:black; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th span.link > a{ text-decoration:underline; } table.OpisParametrów > tbody > tr.OpisParametrów-nagłówek > th code{ color:unset; background-color:unset; } table.OpisParametrów > tbody{ display:table; width:100%; } table.OpisParametrów > tbody > tr:first-child > th:first-child{ width:2%; white-space:nowrap; text-align:center; } table.OpisParametrów > tbody > tr:first-child > th:first-child + th{ width:30%; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child{ text-align:center; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th{ text-align:left; font-weight:normal; } table.OpisParametrów > tbody > tr:first-child ~ tr > td:first-child + th + td{ text-align:left; } @media all and (max-width:745px), all and (max-device-height:745px){ table.OpisParametrów{ display:flex !important; flex-direction:row; width:100%; } table.OpisParametrów, table.OpisParametrów > tbody, table.OpisParametrów > tbody > tr, table.OpisParametrów > tbody > tr > th, table.OpisParametrów > tbody > tr > td{ box-sizing:border-box; } table.OpisParametrów > tbody{ display:flex !important; flex-direction:column; width:100%; } table.OpisParametrów > tbody > tr{ display:flex !important; flex-direction:row; flex-wrap:wrap; width:100%; } table.OpisParametrów > tbody > tr> th:not(:first-child), table.OpisParametrów > tbody > tr> td:not(:first-child){ display:block !important; } table.OpisParametrów > tbody > tr > *:first-child{ max-width:2rem !important; width:100% !important; display:flex !important; flex-direction:column; align-items: stretch; justify-content: center; } table.OpisParametrów > tbody > tr:first-child > *:first-child + *{ max-width:5rem !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~ *{ border-left:0; } table.OpisParametrów > tbody > tr:first-child > *:first-child + * ~*{ max-width:calc( 100% - 2rem - 5rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(:first-child) > *:first-child + *{ max-width:calc( 100% - 2rem) !important; width:100% !important; border-left:0; } table.OpisParametrów > tbody > tr:not(.OpisParametrów-nagłówek):last-child > *:first-child, table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child, table.OpisParametrów > tbody > tr > *:first-child + *, table.OpisParametrów > tbody > tr:not(:last-child) > *:first-child + * ~ *{ border-bottom:0; } table.OpisParametrów > tbody > tr > *:first-child + * ~ *{ width:100% !important; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ 0hco8pu4uw9t88w69qlubseohhuoh4y Szablon:OpisParametrów/opis 10 64148 555498 2026-09-10T17:21:21Z Persino 2851 Utworzono nową stronę „{{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony formułujące tabele |…” 555498 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony formułujące tabele | Szablony specjalne }} </includeonly> bpqut1j2jqsy66si4t8kqnh0uzdate4 555500 555498 2026-09-10T17:24:37Z Persino 2851 /* Zobacz też */ 555500 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony formułujące tabele | Szablony specjalne | Szablony opisów }} </includeonly> qcuoknziocn78fjdony2j12dnvcfotv 555503 555500 2026-09-10T17:28:02Z Persino 2851 555503 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Ramka}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony formułujące tabele | Szablony specjalne | Szablony opisów }} </includeonly> eimrzadrlkal3bn1lgc2tyg5r6agsmo 555539 555503 2026-09-10T21:29:24Z Persino 2851 Persino przeniósł(-osła) stronę [[Szablon:ListaParametrów/opis]] do [[Szablon:OpisParametrów/opis]], bez pozostawienia przekierowania pod starym tytułem 555503 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Ramka}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony formułujące tabele | Szablony specjalne | Szablony opisów }} </includeonly> eimrzadrlkal3bn1lgc2tyg5r6agsmo Kategoria:Szablony opisów 14 64149 555499 2026-09-10T17:24:03Z Persino 2851 Utworzono nową stronę „{{Kategoria|Szablony}}” 555499 wikitext text/x-wiki {{Kategoria|Szablony}} catpia3fgap9w4a88a86f3t5yov32ck