Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.48.0-wmf.1
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
Biologia dla liceum/Różnorodność ekosystemowa
0
26823
560346
528916
2026-10-30T10:58:48Z
CommonsDelinker
1569
Replacing Las_sosnowy_swiezy02.jpg with [[File:Pinus_sylvestris_Las_sosnowy_świeży_2005-07-02_02.jpg]] (by [[:c:User:CommonsDelinker|CommonsDelinker]] because: [[:c:COM:FR|File renamed]]: [[:c:COM:FR#FR1|Criterion 1]] (original uploader’s request)).
560346
wikitext
text/x-wiki
{{Rozdział|Różnorodność ekosystemowa}}
Zagadnienie z podstawy programowej
„uczeń: opisuje różnorodność biologiczną na poziomie genetycznym, gatunkowym
i ekosystemowym; wskazuje przyczyny spadku różnorodności genetycznej, wymierania gatunków, zanikania siedlisk i ekosystemów; ”
== Globalne zróżnicowanie ekosystemów ==
[[Plik:Vegetation-no-legend.PNG|Rozmieszczenie biomów|thumb|500px]]
Każdy ekosystem składa się z biocenozy i biotopu. Elementy biotopu w dużym stopniu uzależnione są od klimatu. Gleba i woda są niezbędne do rozwoju roślin, które stanowią w większości ekosystemów podstawowy poziom troficzny, czyli producentów. Z biomasy wytworzonej przez rośliny korzystają bezpośrednio lub pośrednio pozostałe organizmy. W poszczególnych strefach klimatycznych występują ekosystemy o szacie roślinnej. Grupy ekosystemów z charakterystyczną szatą roślinną oraz podobnej strukturze przestrzennej to biomy.
W strefie równikowej typowym ekosystemem jest wilgotny las równikowy. Brak pór roku, częste opady i utrzymujące się przez cały rok wysokie temperatury sprzyjają rozwojowi organizmów żywych. Dla lasów równikowych charakterystyczne jest występowanie kilku pięter roślinności, duża produkcja biomasy oraz ogromna różnorodność gatunkowa. Biom ten skupia ekosystemy o różnorodności gatunkowej nieporównywalnej z ekosystemami w żadnej innej strefie klimatycznej.
W klimacie podrównikowym występowania pory suchej wiąże się ze znacznie uboższą szatą roślinną. Trawiaste ekosystemy z nielicznymi drzewami zaliczane są do biomu o nazwie sawanna. Różnorodność gatunkowa w strefie sawann jest znacznie mniejsza.
W klimacie zwrotnikowym znikoma ilość opadów nie stwarza możliwości rozwoju ekosystemów o dużym bogactwie gatunkowym. Nieliczne rośliny to gatunki, które potrafią przetrwać długie okresy suszy. Aby przetrwać w niesprzyjającym środowisku musiały wykształcić, w procesie ewolucji, liczne zabezpieczenia chroniące przed zjedzeniem przez zwierzęta. Liczba gatunków zwierząt pojawiających się w ekosystemach pustynnych jest również skromna.
W klimacie podzwrotnikowym, jeśli ilość opadów jest wystarczająca rozwijają się ekosystemy zaliczane do lasów wiecznie zielonych. Dodatnia temperatura przez cały rok umożliwia rozwój drzew, które nie zrzucają liści. Ograniczona ilość wody wiąże się z koniecznością ograniczenia parowania. Liści roślin lasów wiecznie zielonych są grube i skórzaste.
W klimacie umiarkowanym większość ekosystemów to lasy liściaste i mieszane. Drzewa liściaste w okresie zimy zrzucają liście. Okres zimy nie sprzyja wielu organizmom, dlatego różnorodność gatunkowa lasów strefy umiarkowanej jest znacznie niższa niż lasów równikowych.
W głębi kontynentów w strefie klimatu umiarkowanego ilość opadów jest niewystarczająca do rozwinięcia roślinności drzewiastej. Roślinność trawiasta i inne rośliny zielne tworzą biom o nazwie step.
W klimacie umiarkowanych chłodnym typową roślinnością są lasy iglaste nazywane tajgą. Różnorodność gatunkowa ekosystemów tajgi jest niewielka, w lasach można wyróżnić piętro drzew i tylko czasami dobrze rozwinięte piętro runa
W klimacie podbiegunowym ujemne temperatury, panujące przez większą cześć roku, pozwalają na rozwinięcie się tyko porostów, mchów, roślinności trawiastej i karłowatych drzew. Różnorodność gatunkowa ekosystemów tundry nie jest zbyt duża.
W klimacie polarnym ekosystemy są skrajnie ubogie w gatunki, biom nazywany jest pustynią lodową. Zwierzęta żyjące na Antarktydzie korzystają przede wszystkim z pokarmu dostępnego w morzach.
Niektóre ekosystemy są do siebie podobne pod względem szaty roślinnej pomimo tego, że znajdują się w odrębnych strefach klimatycznych. Ekosystemy wysokich gór określane są jako biom wysokogórski.
<gallery>
Plik:Jungle stream (La Selva Biological Station).jpg|Las równikowy
Plik:South American jungle photograph.jpg|Las równikowy
Plik:Salt Lick Game Lodge from the south in the Taita Hills Wildlife Sanctuary, Kenya 3.jpg|Sawanna
Plik:Flora of Tanzania 1729 Nevit.jpg|Sawanna
Plik:Agasthiyamalai range and Tirunelveli rainshadow.jpg|Pustynia
Plik:Ramon2004b.jpg|Pustynia
Plik:Steppe02-Obo.jpg|Step
Plik:Steppe of western Kazakhstan in the early spring.jpg|Step
Plik:Arcosu24.jpg|Las wieczniezielony
Plik:A forest near Haifa.JPG|Las wieczniezielony
Plik:Mischwald Herbst.jpg|Lasy liściaste i mieszane strefy umiarkowanej
Plik:Mixed-forest.jpg|Lasy liściaste i mieszane strefy umiarkowanej
Plik:Winter-boreal-forest-Trondheim.jpg|Tajga
Plik:Helvetinjärvi.JPG|Tajga
Plik:Bolshezemelskaja tundra 1.JPG|Tundra
Plik:Greenland-sydkap hg.jpg|Tundra
Plik:AntarcticaDomeCSnow.jpg|Pustynia lodowa
Plik:Antarctic (js) 18.jpg|Pustynia lodowa
File:Alpy sedlo 1.jpg|Biom wysokogórski. Alpy
Plik:Crows Lake in North Sikkim.jpg|Biom wysokogórski. Himalaje
</gallery>
== Lokalne zróżnicowanie ekosystemów==
[[Plik:Field Hamois Belgium Luc Viatour.jpg|Ekosystem łakowy i polny|thumb]]
W jednej strefie klimatycznej warunki środowiskowe nie są jednorodne. Ekosystemy stanowią odrębną całość. Pomimo wielu podobieństw między ekosystemami biomu wilgotnych lasów równikowych położonymi w Afryce, Azji lub Ameryce Południowej istnieją duże różnice w składzie gatunkowym. Ewolucja organizmów występujących w poszczególnych ekosystemach przebiega niezależnie. Ekosystemy są izolowane barierami geograficznymi, a mieszanie się gatunków jest niemożliwe.
[[Plik:Pinus sylvestris Las sosnowy świeży 2005-07-02 02.jpg|Las sosnowy|thumb]]
[[Plik:Poland Biebrza Burzyn.jpg|Mokradła w dolinie rzeki Biebrzy|thumb]]
[[Plik:Beechforest062005.jpg|Las liściasty|thumb]]
[[Plik:Jez Głeboczek.JPG|Jezioto tworzy odrębny ekosystem|thumb]]
Jeśli bariery geograficzne nie występują do zróżnicowania ekosystemów w jednej strefie klimatycznej dochodzi w efekcie zróżnicowania warunków środowiska. Najogólniej ekosystemu można podzielić na wodne i lądowe. Do ekosystemów wodnych zaliczane będą ekosystemy występujące w morzach i oceanach oraz ekosystemy wód śródlądowych. Odrębny ekosystem tworzą na przykład organizmy zamieszkujące jezioro. Podobnie rzeka wraz z organizmami w niej żyjącymi jest oddzielnym ekosystemem. Wpływ człowieka doprowadził do wyróżniania ekosystemów ze względu na ich stopień przekształcenia. Ekosystemy pierwotne to te, w których wpływ człowieka nie występuje. Wszystkie procesy przyrodnicze w takich ekosystemach pozostają niezaburzone. W krajach wysokorozwiniętych, takich jak Polska, ekosystemów pierwotnych jest niewiele. Za ekosystem pierwotny można uznać Białowieski Park Narodowy oraz Tatrzański Park Narodowy. Puszcza Białowieska to jedyny w Europie pierwotny ekosystem należący do lasów nizinnych. Większość lasów w Europie można zaliczyć do ekosystemów naturalnych lub półnaturalnych. Są ekosystemami zmienionymi przez człowieka. W większości lasów prowadzi się wyręb drzew i pozyskuje się inne przydatne dla człowieka surowce. Skład gatunkowy lasów zastał zaburzony. W większości lasów w ramach gospodarki leśnej sadzone były drzewa, które nie występowały w danym miejscu wcześniej. Nasiona mogły pochodzić nawet z bardzo odległego ekosystemu, a geny posiadane przez wyrosłe z nich drzewa nie zawsze zapewniają odpowiednie przystosowanie do lokalnego środowiska. Zaburzenie składu gatunkowego i wprowadzenie osobników z odmienną pula genową zaburza naturalne procesy zachodzące w ekosystemach. W sadzonych i gospodarczo wykorzystywanych lasach często dochodzi do masowego rozmnażania się organizmów traktowanych jako szkodniki – gradacje szkodników. Takie sytuacje nie mają miejsca w lasach pierwotnych, duża różnorodność gatunkowa i występowanie wielu zależności pokarmowych zapewnia utrzymanie liczebności każdej populacji na zrównoważonym poziomie. Do ekosystemów półnaturalnych zaliczyć można także łąki. Ich skład gatunkowy został zmieniony, jednak wiele gatunków rosnących na łąkach to gatunki dzikie nie wysiewane przez człowieka. Stosunkowo duża powierzchnię zajmują ekosystemy sztuczne, do których zalicza się pola uprawne. Dominuje w nich jeden gatunek rośliny, wprowadzony przez człowieka, gatunki dzikich roślin traktowane są jako chwasty i zwalczane na różne sposoby. Ekosystemy powstałe w wyniku działalności rolniczej są skrajnie ubogie w gatunki, procesy przyrodnicze są trwale zaburzone działaniem człowieka. Na terenach miast i obszarach przemysłowych także występują organizmy żywe. Ekosystemy takie określa się jako zdegradowane, procesy przyrodnicze są w nich skrajnie zaburzone.
Różnorodność ekosystemowa obejmuje przede wszystkim ekosystemy pierwotne i naturalne, w których wpływ człowieka nie jest dominującym czynnikiem. Zróżnicowanie ekosystemów przekłada się na różnorodność gatunków, które zamieszkują w środowisku odpowiadającym ich potrzebom. Na terenie Polski występuje wiele rodzajów ekosystemów leśnych oraz mokradła, torfowiska, ekosystemy wysokogórskie, jeziorne, rzeczne, jaskiniowe. Na mokradłach mogą żyć i rozmnażać się gatunki ptaków wodnych. W Europie Zachodniej ekosystemy takie zostały zniszczone w wyniku osuszania terenów pod pola uprawne. Kluczowymi czynnikami wpływającymi na zróżnicowanie ekosystemów w jednej strefie klimatycznej jest rodzaj gleb i stosunki wodne. Na glebach piaszczystych mało żyznych, gdzie dostępność wody i składników mineralnych potrzebnych roślinom jest ograniczona, rosną lasy iglaste – bory. Na żyznych glebach powstałych na glinie rosną lasy liściaste. W dolinach rzek występują lasy łęgowe, w których dominującymi gatunkami drzew są zwykle topole i wierzby. Na terenach podmokłych rosną lasy olchowe, głównym gatunkiem drzew jest olcha, występuje w nich też dużo roślin bagiennych. Współcześnie większość ekosystemów leśnych w Polsce to lasy iglaste rosnące na ubogich glebach piaszczystych. Tereny z żyznymi glebami zostały przekształcone w pola uprawne. Jeszcze tysiąc lat temu dominującymi ekosystemami były lasy liściaste.
== Sukcesja ekologiczna==
[[Plik:Puszcza Bydgoska - były poligon Kabat.jpg|Sukcesja ekologiczna na terenie byłego poligonu|thumb]]
Ekosystemy zmieniają się w czasie. Ekosystem jeziorny może zaniknąć w wyniku odkładania się osadów dennych. W miejscu jeziora z czasem pojawią się gatunki typowe dla ekosystemów mokradeł, a wraz z podnoszeniem się powierzchni terem zostanie przekształcony w las. Zjawisko przekształcania ekosystemów nazywane jest sukcesją ekologiczną. Jest to proces powolny, zachodzący przez wiele lat. Sukcesja ekologiczna umożliwia powstanie bogatych ekosystemów na terenach, na których wcześniej życie nie występowało, jest to sukcesja pierwotna. Na wydmy, powstałe po powodzi lub sztormach wyspy lub inne niezasiedlone tereny najpierw wkraczają organizmy, które potrafią przetrwać w wyjątkowo niesprzyjających warunkach. Niektóre gatunki traw, porostów zasiedlające nowe siedlisko jako pierwsze to organizmy pionierskie. Gdy w wyniku wzrostu i zamierania organizmów pionierskich na nowym siedlisku zostanie wykształcona pierwsza warstwa gleby, mogą na niej wyrosnąć rośliny o większych wymaganiach, z czasem pojawiają się rośliny krzewiaste i drzewa. Jednocześnie wraz z roślinami do przekształcającego się ekosystemu docierają zwierzęta, grzyby i bakterie. Gdy warunki życia w ekosystemie zmieniają się, niektóre organizmy zanikają, trawy przegrywają konkurencję o światło z drzewami. Jeśli jednak ilość wody nie będzie wystarczająca dla drzew ostatecznym ekosystemem może być ekosystem trawiasty. Zmiany zachodzące w wyniku sukcesji ekologicznej po jakimś czasie ustają, powstaje ostateczna forma ekosystemu, charakterystyczna dla danego klimatu. Jest to stadium klimaksu. W klimacie umiarkowanym stadium klimaksu to las liściasty lub mieszany. Właśnie dlatego przed epoką rozwoju rolnictwa większość terenów Europy była pokryta lasami.
[[Plik:Secondary succesion cm02.jpg| Sukcesja wtórna na porzuconym polu|thumb]]
Sukcesja ekologiczna zachodzi także w miejscach gdzie organizmy zostały zniszczone. Jest to sukcesja wtórna. Do zniszczenia organizmów może dojść w wyniku pożaru, wybuchu wulkanu lub działalności człowieka. Organizmy szybko powracają na puste miejsce. Kolejne stadia sukcesji są podobne jak przy sukcesji pierwotnej. Po przejściu kolejnych zmian ekosystem osiąga stadium klimaksu. Naturalne pożary lasu od piorunów, zdarzające się w lasach pierwotnych nie są katastrofą dla organizmów. Bogactwo gatunkowe umożliwia szybkie odtworzenie biocenozy na wypalonym obszarze. Niektóre gatunki wygrywają konkurencję tylko w miejscach większych lub mniejszych katastrof. Pożar lub wyłamanie drzewa przez wiatr to dla nich szansa na rozwój i rozmnożenie.
==Ekosystemy a zmiany klimatu ==
W skali czasu geologicznego warunki środowiska ulegają dużym wahaniom. Znaczna cześć Europy w epoce plejstocenu była zajmowana przez lądolód. Pomimo to życie przetrwało. Ekosystemy ulegają zmianom. Gdy temperatura podnosi się pojawiają się w nich gatunki przystosowane do klimatu ciepłego. Gdy temperatura spada, zwiększa się udział gatunków radzących sobie w niskich temperaturach. Kluczowa dla przetrwania ekosystemów i życia jest różnorodność zapewniająca dostosowanie się do zmian. Niektóre gatunki potrafią sobie poradzić w ekosystemie nawet po zmianie klimatu. Ich występowanie jest ograniczone, jednak nadal występują w zmienionych ekosystemach. Gatunki takie to relikty cieplejszych lub chłodniejszych epok. W Polsce przykładowym reliktem epok cieplejszej jest bluszcz, jedyny gatunek pnącza, który nie zrzuca liści na zimę.
==Pamiętaj==
# Ekosystemy są zróżnicowane w zależności od strefy klimatycznej.
# Zbiory podobnych ekosystemów, charakterystyczne dla danego klimatu to biomy.
# Różnorodności gatunkowa ekosystemów biomu wilgotnych lasów równikowych jest ogromna.
# Lokalnie na zróżnicowanie ekosystemów wpływają gleby, warunki wodne i działalność człowieka.
# W krajach rozwiniętych większość terenów to ekosystemy sztuczne o skrajnie małej różnorodności.
# Sukcesja ekologiczna prowadzi do naturalnych zmian w ekosystemach.
# Ekosystemy ulegają zmianom w kolejnych epokach geologicznych. Różnorodność zapewnia trwałość istnienia życia.
==Zadania==
# Ekosystemy sztuczne to najczęściej pola z jedną uprawą. Spróbuj ocenić różnorodność ekosystemów sztucznych w Polsce. Jest ich tyle ile głównych roślin uprawnych. Jakie rośliny uprawne zajmują duże powierzchnie pól w Polsce?
# Podaj nazwy krain geograficznych, w których na obszarze Polski występują wymienione typy ekosystemów: torfowiska, wydmy nadmorskie, mokradła, pierwotna puszcza nizinna.
# Jakiego ekosystemu można spodziewać się po 200 latach na żyznym polu uprawnym jeśli zostanie porzucone i pozbawione ingerencji człowieka?
pxl1397nanszfsykxp5vjzhkqp1ihv9
Moduł:StronicowyParser/Potrzebne
828
58155
560343
560247
2026-10-30T10:19:28Z
Persino
2851
560343
Scribunto
text/plain
local p={};
function p.SpisRzeczySzablon(nazwa_szablonu,numer,tabela_parametrow_szablonu,tabela_nazw_spisu_rzeczy_szablon,kod_num)
local numer_parametru;
if(not tabela_nazw_spisu_rzeczy_szablon.numer_parametru)then
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tab_spisu_rzeczy;
if(not kod_num)then
tab_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu;
else
tab_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_linkowe_spisu_rzeczy;
end;
numer_parametru=tab_spisu_rzeczy[nazwa_szablonu];
if(not numer_parametru)then return nil;end;
tabela_nazw_spisu_rzeczy_szablon.numer_parametru=numer_parametru;
else
numer_parametru=tabela_nazw_spisu_rzeczy_szablon.numer_parametru;
end;
local indeks=numer_parametru[numer];
for p,_ in ipairs(indeks) do
local parametr=tabela_parametrow_szablonu[indeks[p]];
if(parametr)then
return parametr;
end;
end;
return nil;
end;
function p.LiczonyHNumer()
local tab={};
local h_numer_zapamietane=nil;
--local ostatnie_poprz=nil;
return function(h_numer,h_numer_nowe)
if(h_numer==0)then
if(#tab>0)then
local h_numer_poprz,ostatnie_poprz=unpack(tab[#tab]);
return ostatnie_poprz;
end;
return nil;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
local ostatnie;---=tab[h_numer];
local max_h_numer=nil;local min_h_numer=nil;
local ostatnie_max;local ostatnie_min;local ostatnie_ost;local ostatnie_ost_prawda=true;
for i=#tab,1,-1 do
----
local h_numer_pos,ostatnie_pos=unpack(tab[i]);
if(ostatnie_ost_prawda)then
if(h_numer_pos==h_numer)then
ostatnie_ost=ostatnie_pos;
break;
end;
ostatnie_ost_prawda=nil;
end;
----
if((h_numer>h_numer_pos)and((max_h_numer or 0)<h_numer_pos))then
if((h_numer_pos or 0)<=(max_h_numer or h_numer))then
ostatnie_max=ostatnie_pos;
max_h_numer=h_numer_pos;
end;
end;
end;
if(ostatnie_ost)then
ostatnie=ostatnie_ost;
else
ostatnie=(ostatnie_max or 0)+1;
end;
local h_numer_poprz,ostatnie_poprz=nil,nil;
if(#tab>0)then
h_numer_poprz,ostatnie_poprz=unpack(tab[#tab]);
end;
if(ostatnie>(ostatnie_poprz or 0)+1)then
ostatnie=(ostatnie_poprz or 0)+1;
end;
table.insert(tab,{h_numer,ostatnie,});
if(h_numer_nowe)then
local roznica=h_numer_nowe-ostatnie;
if(roznica==0)then
return ostatnie;
end;
local tab2={};
for i,tabs in pairs(tab)do
local name,value=unpack(tabs);
tab2[i]={name,value+roznica,};
end;
tab=tab2;
return h_numer_nowe;
end;
return ostatnie;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==0))then return nil;end;
if((numer)and(numer<1)or(numer~=math.floor(numer)))then return nil;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryKonteneraWoluminu(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
local html_modul=require("Module:Html");
if(nazwa_jednostki)then
local tabela_nazw_adresu={};
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true,tabela_nazw_adresu);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki,true,tabela_nazw_adresu);
end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=((nazwa_przestrzeni)and ((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "") or nazwy_modul["NAZWAPRZESTRZENI"]());
local nazwa_jednostki=(((nazwa_jednostki)and(nazwa_jednostki~=""))and nazwa_jednostki or nazwy_modul["NAZWASTRONY"]());
local pelna_nazwa_jednostki=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
pelna_nazwa_jednostki=html_modul.DecodeHtml(pelna_nazwa_jednostki,true);
pelna_nazwa_jednostki=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](pelna_nazwa_jednostki);
---
local techniczne_modul=require("Module:Techniczne");
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
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);
pelna_nazwa_jednostki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_jednostki,[2]=nazwa_modulu,};
pelna_nazwa_jednostki=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_jednostki);
local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_jednostki);
if(strona)then pelna_nazwa_jednostki=strona;end;
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_jednostki);
self.nazwa_przestrzeni_woluminu=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_jednostki);
self.nazwa_woluminu=(self.nazwa_przestrzeni_woluminu~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_jednostki) or nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_jednostki);
self.nazwa_podstrony_woluminu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_jednostki);
self.parametry_woluminu=false;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[self.nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return;end;
local tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[self.nazwa_przestrzeni_woluminu];
if(not tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki)then return;end;
local tab_lista_artykulow_w_ksiazce=tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki[self.nazwa_woluminu];
if(not tab_lista_artykulow_w_ksiazce)then
return;
end;
local oryginalna_ksiazka=tab_lista_artykulow_w_ksiazce.adres_woluminu_bazowego_spisu_rzeczy;
if(oryginalna_ksiazka)then
self.nazwa_przestrzeni=oryginalna_ksiazka[1];
self.nazwa_przestrzeni_woluminu=oryginalna_ksiazka[2];
self.nazwa_woluminu=oryginalna_ksiazka[3];
end;
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_przestrzeni_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
self.nazwa_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
self.nazwa_podstrony_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
self.parametry_woluminu=true;
end;
end;
function p.TabelaListyStronWoluminu(self,frame,tabela_listy_danych_analizy_ksiazki,czy_podana,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)
local self_tab;
if((not nazwa_przestrzeni)or(not nazwa_przestrzeni_ksiazki)or(not nazwa_ksiazki)or(not nazwa_artykulu))then
if((self.parametry_woluminu)and((not tabela_listy_danych_analizy_ksiazki)or(tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu)))then
if(not tabela_listy_danych_analizy_ksiazki)then
self_tab,tabela_listy_danych_analizy_ksiazki=p.Self(self,tabela_listy_danych_analizy_ksiazki);
end;
if((not self_tab)or((self_tab)and(tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu)))then
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw;
local tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki=tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki;
local tab_lista_artykulow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
local tab_lista_zmiennych_w_artykule=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu;
return tab_lista_artykulow_w_ksiazce.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;
end;
end;
end;
if((not self_tab)or(not tabela_listy_danych_analizy_ksiazki))then
self_tab,tabela_listy_danych_analizy_ksiazki=p.Self(self,tabela_listy_danych_analizy_ksiazki);
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni or((not czy_podana) and self_tab.nazwa_przestrzeni_podana or self_tab.nazwa_przestrzeni)];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then
return nil,nil,nil,nil,nil;
end;
local tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_przestrzeni_ksiazki or((not czy_podana) and self_tab.nazwa_przestrzeni_woluminu_podana or self_tab.nazwa_przestrzeni_woluminu)];
if(not tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki)then
return nil,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,nil,nil,nil;--[[--Do poprawienia--]]
end;
local tab_lista_artykulow_w_ksiazce=tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki or((not czy_podana) and self_tab.nazwa_woluminu_podana or self_tab.nazwa_woluminu)];
if(not tab_lista_artykulow_w_ksiazce)then
return nil,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,nil,nil;
end;
local tab_lista_zmiennych_w_artykule=tab_lista_artykulow_w_ksiazce.lista_podstron_woluminu and tab_lista_artykulow_w_ksiazce.lista_podstron_woluminu[nazwa_artykulu or ((not czy_podana) and self_tab.nazwa_podstrony_woluminu_podana or self_tab.nazwa_podstrony_woluminu)] or nil;
return tab_lista_artykulow_w_ksiazce.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;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.Self(self,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local self_tab={};
self_tab.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self_tab.nazwa_przestrzeni_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
self_tab.nazwa_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
self_tab.nazwa_podstrony_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
self_tab.nazwa_przestrzeni_podana=self.nazwa_przestrzeni;
self_tab.nazwa_przestrzeni_woluminu_podana=self.nazwa_przestrzeni_woluminu;
self_tab.nazwa_woluminu_podana=self.nazwa_woluminu;
self_tab.nazwa_podstrony_woluminu_podana=self.nazwa_podstrony_woluminu;
return self_tab,tabela_listy_danych_analizy_ksiazki;
end;
function p.KompletnaNazwaWoluminu(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..((self.nazwa_przestrzeni_woluminu~="")and (self.nazwa_przestrzeni_woluminu.."/") or "")..self.nazwa_woluminu
end;
function p.NazwaPodStronyWoluminu(self,frame)
return self.nazwa_podstrony_woluminu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki_w_bazie,przekierowanie_w_bazie,naglowek,ksiazka,analizowana)
local stronicowyparser_modul=require("Module:StronicowyParser");
local nazwy_modul=require("Module:Nazwy");
local czy_z_nazwa_ksiazki=ksiazka and (not analizowana) and pelna_nazwa_ksiazki_w_bazie;
local pelna_nazwa_ksiazki=(czy_z_nazwa_ksiazki and (pelna_nazwa_ksiazki_w_bazie[4])) and nazwy_modul["NazwaModułu"](pelna_nazwa_ksiazki_w_bazie[1],pelna_nazwa_ksiazki_w_bazie[2],pelna_nazwa_ksiazki_w_bazie[3],"") or nil;
local artykul=czy_z_nazwa_ksiazki and not pelna_nazwa_ksiazki_w_bazie[5] and p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(przekierowanie_w_bazie,naglowek) or artykul;
return ksiazka and ((((pelna_nazwa_ksiazki)and(pelna_nazwa_ksiazki~=""))
and(pelna_nazwa_ksiazki)or stronicowyparser_modul["AktualnaKsiążka"](mw.getCurrentFrame())).."/"..artykul)
or artykul;
end;
function p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki)
p:AnalizujArgumentySzablonu(frame);
p:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce_spis=p:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce_spis)then return nil;end;
local tab_naglowkow={};
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce_spis)do
local rozdzial=tab_lista[1][1];
local poziom_rozdzialu=tab_lista[1][2][1];
local czy_centrowany=tab_lista[1][2][4];
if((poziom_rozdzialu)and(poziom_rozdzialu>0)and(not czy_centrowany))then
table.insert(tab_naglowkow,rozdzial);
end;
end;
self.tablica_napisowa_wprowadzenia_tekstu=tab_naglowkow;
return tab_naglowkow;
end;
function p.LosowyNapisProwadzeniaTekstuBezPierwszegoOrazOstatniegoNapisuSpisuRzeczy(self,frame,tabela_listy_danych_analizy_ksiazki)
self.numer_pomiedzy_napisu_wprowadzenia_tekstu=tonumber(frame.args[1]) or 1;
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
if(not self.tablica_napisowa_wprowadzenia_tekstu)then return nil;end;
self.len_tablicy_napisowej_wprowadzenia_tekstu=self.len_tablicy_napisowej_wprowadzenia_tekstu or #(self.tablica_napisowa_wprowadzenia_tekstu);
self.reszta_pomiedzy_napisu_wprowadzenia_tekstu=math.fmod(self.numer_pomiedzy_napisu_wprowadzenia_tekstu,self.len_tablicy_napisowej_wprowadzenia_tekstu-2);
local artykul=self.tablica_napisowa_wprowadzenia_tekstu[self.reszta_pomiedzy_napisu_wprowadzenia_tekstu+2];
return artykul;
end;
function p.LosowyNapisProwadzeniaTekstuWoluminu(self,frame,tabela_listy_danych_analizy_ksiazki)
self.numer_losowy_napis_wprowadzenia_tekstu=tonumber(frame.args[1]) or 1;
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
if(not self.tablica_napisowa_wprowadzenia_tekstu)then return nil;end;
self.len_tablicy_napisowej_wprowadzenia_tekstu=self.len_tablicy_napisowej_wprowadzenia_tekstu or #(self.tablica_napisowa_wprowadzenia_tekstu);
self.reszta_losowy_napis_wprowadzenia_tekstu=math.fmod(self.numer_losowy_napis_wprowadzenia_tekstu,self.len_tablicy_napisowej_wprowadzenia_tekstu);
local artykul=self.tablica_napisowa_wprowadzenia_tekstu[self.reszta_losowy_napis_wprowadzenia_tekstu+1];
return artykul;
end;
function p.PierwszyNapisWprowadzeniaTekstu(self,frame)
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
return self.tablica_napisowa_wprowadzenia_tekstu[1];
end;
function p.OstatniNapisWprowadzeniaTekstu(self,frame)
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
return self.tablica_napisowa_wprowadzenia_tekstu[#(self.tablica_napisowa_wprowadzenia_tekstu)];
end;
function p.LiczbaNapisowaWprowadzeniaTekstu(self,frame)
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
self.len_tablicy_napisowej_wprowadzenia_tekstu=self.len_tablicy_napisowej_wprowadzenia_tekstu or #(self.tablica_napisowa_wprowadzenia_tekstu);
return self.len_tablicy_napisowej_wprowadzenia_tekstu;
end;
function p.IteratorPoWprowadzeniachNapisowychTekstu(self,frame)
local tab_naglowkow=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame);
local parametry_modul=require("Module:Parametry");
return parametry_modul.IteratorPoNumerowanychElementachTablicy(tab_naglowkow);
end;
function p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,spis_tresci,inne_spisy,dodatkowe_artykuly)
p:AnalizujArgumentySzablonu(frame);
local 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;
if(not tab_lista_artykulow_w_ksiazce_spis)then
p:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
tab_lista_artykulow_w_ksiazce_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=p:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
spis_tresci=tab_lista_artykulow_w_ksiazce.nazwa_bazowego_spisu;
inne_spisy=tab_lista_artykulow_w_ksiazce.tab_inne_spisy;
dodatkowe_artykuly=tab_lista_artykulow_w_ksiazce.dodatkowe_strony_woluminu;
end;
if(not tab_lista_artykulow_w_ksiazce_spis)then return nil;end;
local args=p:Args();
local parametry_modul=require("Module:Parametry");
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykulow=(not czy_naglowek) and {} or nil;
local tab_listy_artykulow={};
local tab_listy_artykulow_spis={};
local czy_inne_spisy=false;
local html_modul=require("Module:Html");
local nazwa_tabeli_danego_spisu_tresci=args["spis"];
if(nazwa_tabeli_danego_spisu_tresci)then
local techniczne_modul=require("Module:Techniczne");
nazwa_tabeli_danego_spisu_tresci=html_modul.DecodeHtml(nazwa_tabeli_danego_spisu_tresci,true);
nazwa_tabeli_danego_spisu_tresci=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_tabeli_danego_spisu_tresci);
nazwa_tabeli_danego_spisu_tresci=parametry_modul["Odstępy"]{[1]=nazwa_tabeli_danego_spisu_tresci,[2]="tak",};
nazwa_tabeli_danego_spisu_tresci=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"](nazwa_tabeli_danego_spisu_tresci,"");
local nazwa_ksiazki=p:KompletnaNazwaWoluminu(frame)
local nazwa_artykulu=nazwa_ksiazki.."/"..nazwa_tabeli_danego_spisu_tresci;
local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_artykulu);
if(strona)then
local nazwy_modul=require("Module:Nazwy");
nazwa_tabeli_danego_spisu_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
end;
local czy_dany_spis=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce_spis)do
local poziom_rozdzialu=tab_lista[1][2][1];
local nazwa_spisu=nil;
if(((m==1)and(not poziom_rozdzialu))or((m>0)and(poziom_rozdzialu)and(poziom_rozdzialu==1)))then
local spis=tab_lista[1]["spis"];
nazwa_spisu=spis and spis[1] or nil;
----
if(not nazwa_tabeli_danego_spisu_tresci)then
if(nazwa_spisu)then
if(not tab_listy_artykulow["spis"])then tab_listy_artykulow["spis"]={};end;
local spis_artykulow=tab_listy_artykulow["spis"];
spis_artykulow[nazwa_spisu]={};
tab_listy_artykulow_spis=spis_artykulow[nazwa_spisu];
czy_inne_spisy=true;
else
local dodatkowe=tab_lista[1]["dodatkowe"];
if(dodatkowe)then
tab_listy_artykulow["dodatkowe"]={};
tab_listy_artykulow_spis=tab_listy_artykulow["dodatkowe"];
czy_inne_spisy=true;
end;
end;
else
if(nazwa_spisu)then
if(nazwa_spisu==nazwa_tabeli_danego_spisu_tresci)then
czy_dany_spis=true;
else
if(czy_dany_spis)then
czy_dany_spis=nil;
break;
else
czy_dany_spis=nil;
end;
end;
end;
end;
end;
if((tab_lista[2])and((not nazwa_tabeli_danego_spisu_tresci)or((nazwa_tabeli_danego_spisu_tresci)and(czy_dany_spis))))then
local pomin_pozycje=true;
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if((not pomin_pozycje)or(not nazwa_spisu))then
local czy_table_baza_artykulu=p.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
----
artykul=p.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(artykul,czy_naglowek);
----
if(czy_naglowek or (not tab_artykulow[artykul]))then
if(not czy_naglowek)then tab_artykulow[artykul]=true;end;
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local przekierowanie=czy_table_baza_artykulu and artykul_w_bazie[1][3] or nil;
local pelna_nazwa_ksiazki=czy_table_baza_artykulu and artykul_w_bazie[1][4] or nil;
table.insert(tab_listy_artykulow_spis,(nazwa or przekierowanie or pelna_nazwa_ksiazki) and {artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki,} or artykul);
end;
else
pomin_pozycje=false;
end;
end;
end;
end;
local stronicowyparser_modul=require("Module:StronicowyParser");
local parametry_modul=require("Module:Parametry");
--local spis_tresci,inne_spisy,dodatkowe_artykuly=nazwa_glownego_spisu,tab_inne_spisy,tab_dodatkowe_artykuly;
if((nazwa_tabeli_danego_spisu_tresci)or(((not inne_spisy)
or(not parametry_modul["CzySąElementyNumerowaneTablicy"](inne_spisy)))
and((not dodatkowe_artykuly)
or(not parametry_modul["CzySąElementyNumerowaneTablicy"](dodatkowe_artykuly)))
))then
local tablica_spisu_glownego;
if(not nazwa_tabeli_danego_spisu_tresci)then
if(czy_inne_spisy)then
local czy_table_spis_tresci=parametry_modul.TypeTable(spis_tresci);
local tab_listy_artykulow_spis=tab_listy_artykulow["spis"] or {};
tablica_spisu_glownego=tab_listy_artykulow_spis[czy_table_spis_tresci and spis_tresci[1] or spis_tresci];
else
tablica_spisu_glownego=tab_listy_artykulow_spis;
end;
else
tablica_spisu_glownego=tab_listy_artykulow_spis;
end;
local iter_glowny=parametry_modul.IteratorPoNumerowanychElementachTablicy(tablica_spisu_glownego);
return function()
local wartosc=iter_glowny();
if(not wartosc)then return nil;end;
local czy_table_wartosc=p.CzyTabelaStronyWoluminuSpisuRzeczy(wartosc);
local artykul=czy_table_wartosc and wartosc[1] or ((not czy_table_wartosc) and wartosc or nil);
local nazwa=czy_table_wartosc and wartosc[2] or nil;
local przekierowanie=czy_table_wartosc and wartosc[3] or nil;
local pelna_nazwa_ksiazki=czy_table_wartosc and wartosc[4] or nil;
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
end;
end;
local wykorzystane_spisy={};
local iter_innych_spisow=parametry_modul.IteratorPoNumerowanychElementachTablicy(inne_spisy or {});
local czy_dodatkowe_zaanalizowane=false;
local function IteratorMain(wartosc,numer)
----
local tabela_spisu_spis=tab_listy_artykulow["spis"] or {};
local tabela_spisu=tabela_spisu_spis[wartosc];
if(tabela_spisu)then
if((wykorzystane_spisy)and(wykorzystane_spisy[wartosc]))then
tabela_spisu=nil;
else
wykorzystane_spisy[wartosc]=true;
end;
end;
local iter=parametry_modul.IteratorPoNumerowanychElementachTablicy(tabela_spisu or {});
----
local tak=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local wartosc=iter();
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
if(not wartosc)then
if(numer~=0)then
return nil;
else
local function InneSpisy()
--if(aa<10)then return nil;end;
local spis=iter_innych_spisow();
if(not spis)then
if(czy_dodatkowe_zaanalizowane)then return nil;end;
local tabela_spisu_spis=tab_listy_artykulow["dodatkowe"];
if((not tabela_spisu_spis)or(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_spisu_spis)))then return nil;end;
iter=parametry_modul.IteratorPoNumerowanychElementachTablicy(tabela_spisu_spis or {});
czy_dodatkowe_zaanalizowane=true;
wartosc=iter();
return true;
end;
local czy_table_spis=parametry_modul.TypeTable(spis);
local spis_artykul=czy_table_spis and spis[1] or spis;
if(not wykorzystane_spisy[spis_artykul])then
wykorzystane_spisy[spis_artykul]=true;
local tabela_spisu_spis=tab_listy_artykulow["spis"] or {};
local tabela_spisu=tabela_spisu_spis[spis_artykul];
if(tabela_spisu)then
iter=parametry_modul.IteratorPoNumerowanychElementachTablicy(tabela_spisu or {});
wartosc=iter();
if(not wartosc)then
return InneSpisy();
end;
else
return InneSpisy();
end;
else
return InneSpisy();
end;
return true;
end;
local koniec=InneSpisy();
if(not koniec)then return nil;end;
end;
end;
----
local czy_table_wartosc=p.CzyTabelaStronyWoluminuSpisuRzeczy(wartosc);
artykul=czy_table_wartosc and wartosc[1] or ((not czy_table_wartosc) and wartosc);
nazwa=czy_table_wartosc and wartosc[2] or nil;
przekierowanie=czy_table_wartosc and wartosc[3] or nil;
pelna_nazwa_ksiazki=czy_table_wartosc and wartosc[4] or nil;
----
artykul=p.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul);
----
tak=true;
iter2=IteratorMain(artykul,numer+1);
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
end;
if(not tak)then
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki=IterMain();
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
else
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki=iter2();
if(not artykul)then
tak=nil;
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki=IterMain();
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
else
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
end;
end;
end;
return Iterator;
end;
local czy_table_spis_tresci=parametry_modul.TypeTable(spis_tresci);
return IteratorMain(czy_table_spis_tresci and spis_tresci[1] or spis_tresci,0);
end;
function p.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tab_lista_artykulow_w_ksiazce_spis,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,co_ma_wykrywac)
local frame=mw.getCurrentFrame();
local nazwy_modul=require("Module:Nazwy");
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,nil,tab_lista_artykulow_w_ksiazce_spis,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly);
for nazwa_artykulu_w_bazie,nazwa,przekierowanie_w_bazie,pelna_nazwa_ksiazki in iterator do
if(pelna_nazwa_ksiazki)then
if(co_ma_wykrywac)then
if((pelna_nazwa_ksiazki[1]==nazwa_przestrzeni)and(pelna_nazwa_ksiazki[2]==nazwa_przestrzeni_ksiazki)and(pelna_nazwa_ksiazki[3]==nazwa_ksiazki))then
local czy_przekierowanie=pelna_nazwa_ksiazki[6];
if(czy_przekierowanie)then
local przekierowanie=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(przekierowanie_w_bazie,false);
if(pelna_nazwa_ksiazki[5])then
if(nazwa_artykulu==przekierowanie)then
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
return nazwa_artykulu_strony,1;
end;
else
if((nazwa_artykulu==przekierowanie))then
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
return nazwa_artykulu_strony,2;
end;
end;
else
local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
local ile,_=techniczne_modul.PoliczZbiory{[1]=nazwa_modulu,tekst=true,};
if(ile>0)then
return nazwa_artykulu,3;
else
return nazwa_artykulu,4;
end;
end;
end;
end;
else
if(not co_ma_wykrywac)then
local przekierowanie=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(przekierowanie_w_bazie,false);
if(przekierowanie)then
if(nazwa_artykulu==przekierowanie)then
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
return nazwa_artykulu_strony,1;
else
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
if(nazwa_artykulu==nazwa_artykulu_strony)then
return nazwa_artykulu_strony,2;
end;
end;
else
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
if(nazwa_artykulu==nazwa_artykulu_strony)then
return nazwa_artykulu,3;
end;
end;
end;
end;
end;
end;
function p.ObliczeniaInformacje(self,frame)
local iterator=p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return nil;end;
----
self.tab_artykul={};
----
for artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki in iterator do
table.insert(self.tab_artykul, (nazwa or przekierowanie or pelna_nazwa_ksiazki) and {artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki,} or artykul);
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.UsuwanieElementowePoziomoweZTablicy(tablica,numer)
if(numer==0)then return tablica,0;end;
local s=0;
for i=#tablica,1,-1 do
local artykul=tablica[i][1];
local numer_artykulu_w_bazie=p.PoziomAdresu(artykul);
if(numer~=numer_artykulu_w_bazie)then
table.remove(tablica,i);
s=s+1;
end;
end;
return tablica,s;
end;
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)
local tab_artykul;local s;
if(numer>0)then
local parametry_modul=require("Module:Parametry");
tab_artykul=parametry_modul["KopiujTabelęElementów"](self.tab_artykul);
tab_artykul,s=p.UsuwanieElementowePoziomoweZTablicy(tab_artykul,numer);
else
tab_artykul=self.tab_artykul;
s=0;
end;
local numer_pomiedzy_artykul=tonumber(frame.args[1]) or 1;
local reszta_pomiedzy_artykul=math.fmod(numer_pomiedzy_artykul,#tab_artykul-2);
local artykul=tab_artykul[reszta_pomiedzy_artykul+2];
return artykul;
end;
function p.LosowaStronaWoluminu(self,frame,numer)
local tab_artykul;local s;
if(numer>0)then
local parametry_modul=require("Module:Parametry");
tab_artykul=parametry_modul["KopiujTabelęElementów"](self.tab_artykul);
tab_artykul,s=p.UsuwanieElementowePoziomoweZTablicy(tab_artykul,numer);
else
tab_artykul=self.tab_artykul;
s=0;
end;
local numer_pomiedzy_artykul=tonumber(frame.args[1]) or 1;
local reszta_pomiedzy_artykul=math.fmod(numer_pomiedzy_artykul,#tab_artykul);
local artykul=tab_artykul[reszta_pomiedzy_artykul+1];
return artykul;
end;
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local szablonowe_modul=require("Module:Szablonowe");
local function RozwinSzablon(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
if((szablonowe_modul.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow))
or (szablonowe_modul.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow))
)then
return nil,false;
end;
local nazwa_szablonu_temp,czy_powodzenie=p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true);
if(not czy_powodzenie)then
return nil,false;
end;
nazwa_szablonu=nazwa_szablonu_temp or nazwa_szablonu;
return nazwa_szablonu,true;
end;
nazwa_szablonu=RozwinSzablon(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu;
return nazwa_szablonu;
end;
function p.TOCSilnik(frame,lista_elementow_spisu_tresci, atrybuty,bez_przypisow)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
local nazwa_strony_z_naglowkami=lista_elementow_spisu_tresci.nazwa_strony or "";
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
local czy_w_tym_szablony=mw.ustring.match(element_w_tablicy[1][1],"{{[^{}]+}}");
local adres=element_w_tablicy[1][1];
local naglowek=element_w_tablicy[1][2];
local czy_przypis=(bez_przypisow and stronicowyparser_obiekty_modul.napisy_wprowadzenia_tekstu_przypisowych[naglowek] or nil);
if(czy_w_tym_szablony)then
local specjalne_modul=require("Module:Specjalne");
adres=specjalne_modul["PrzetwórzNagłówek"](adres,true);
naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,false);
end;
adres=nazwa_strony_z_naglowkami.."#"..adres;
----
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li '..(czy_przypis and ('style="display:none;" ') or "")..'class=\"toclevel-1 tocsection-1\">'.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li '..(czy_przypis and ('style="display:none;" ') or "")..'class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li '..(czy_przypis and ('style="display:none;" ') or "")..'class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li '..(czy_przypis and ('style="display:none;" ') or "")..'class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local frame=frame or mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,true);
local bez_przypisow=PobierzParametr("bez przypisów");
bez_przypisow=parametry_modul.CzyTak(bez_przypisow);
local twor_listy=p.TOCSilnik(frame,lista_elementow_spisu_tresci,nil,bez_przypisow);
local toc_czy_tocramka=PobierzParametr("toc");toc_czy_tocramka=parametry_modul.CzyTak(toc_czy_tocramka);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=PobierzParametr("funkcja") or "UkrytaWikitabelowaListaMenu";
local wysokosc=PobierzParametr("wysokość");wysokosc=parametry_modul.CzyTak(wysokosc) and wysokosc or "43.75rem";
local szerokosc=PobierzParametr("szerokość");szerokosc=parametry_modul.CzyTak(szerokosc)and szerokosc or "100%";
local spis_tresci=PobierzParametr("spis treści");spis_tresci=parametry_modul.CzyTak(spis_tresci)and spis_tresci or "Spis treści";
local bez_not_overflow_x=PobierzParametr("bez pasków poziomych przewijania");bez_not_overflow_x=parametry_modul.CzyTak(bez_not_overflow_x);
local spis_artykulu=PobierzParametr("spis artykułu");spis_artykulu=parametry_modul.CzyTak(spis_artykulu);
local czy_bez_arginesu_dolnego=PobierzParametr("bez marginesu dolnego");czy_bez_arginesu_dolnego=parametry_modul.CzyTak(czy_bez_arginesu_dolnego);
local z_marginesami_ramki=PobierzParametr("z marginesami ramki");local czy_z_marginesami_ramki=parametry_modul.CzyTak(z_marginesami_ramki);
local zawartosc_z_marginesami=PobierzParametr("zawartość z marginesami");local czy_zawartosc_z_marginesami=parametry_modul.CzyTak(zawartosc_z_marginesami);
local maxwidth=PobierzParametr("max-width");
local czy_maxwidth=((maxwidth)and(maxwidth~="none"))and tonumber(mw.ustring.match(maxwidth,"^(%d+)%a+$")) or nil;
local klasa=PobierzParametr("klasa");
--twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y '..((not bez_not_overflow_x) and ("mw-not-overflow-x") or "")..'" style="'..(czy_zawartosc_z_marginesami and ("padding:"..zawartosc_z_marginesami)..";" or "")..(czy_maxwidth and ('max-width:'..maxwidth..";") or '')..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:3px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local klasa_tytulu='tytuł_spisu_treści';
local styl_tytulu='text-align:left;font-size:1em;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:8.125em;';
local styl_spisu=(czy_zawartosc_z_marginesami and ("padding:"..zawartosc_z_marginesami)..";" or "")..(czy_maxwidth and ('max-width:'..maxwidth..";") or '')..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding:0.1875em 0.3125em;;box-sizing:border-box;';
local klasa_spisu='toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y '..((not bez_not_overflow_x) and ("mw-not-overflow-x") or "");
local spis=czy_ukryte or "<ul></ul>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..z_marginesami_ramki)..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..'font-size:1em;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|styl nagłówka=background-color:white;|styl komórki=background-color:white;padding:0;|styl tytułu='..styl_tytulu..'|klasa tytułu='..klasa_tytulu..'|tytuł='..spis_tresci..'|klasa spisu='..klasa_spisu..'|styl spisu='..styl_spisu..'|spis='..spis..'|funkcja='..funkcja..'|klasa=spis_treści'..(klasa and (" "..klasa) or '')..'}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n<div style="color: #000;font-family: \'Linux Libertine\',\'Georgia\',\'Times\',serif;font-weight: normal;font-size:2.2em;border-bottom:1px solid #a2a9b1;line-height: 1.3;margin-top:1em;margin-bottom:0.25em">Spis treści</div>\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:1em;font-size:1em;line-height:1.4;">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer,nazwa_modulu_szablonowa,tablica_danych_parametrow_szablonu_strony,__Funkcja, __Funkcja2)
if(obiekt~="SZABLON")then return;end;
--uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
--local tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modulu];
----
local szablonowe_modul=require("Module:Szablonowe");
----
local function GlownaFunkcja(wywolanie,obiekt,kod)
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(wywolanie,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
__Funkcja(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,wywolanie,obiekt,kod,tab_numer);
if(__Funkcja2)then
__Funkcja2(wywolanie,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end);
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod);
end;
function p.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(artykul,czy_naglowek)
local parametry_modul=require("Module:Parametry");
if((parametry_modul.TypeTable(artykul))and(artykul["LINK"]))then
if(not czy_naglowek)then
return artykul[1];
else
return artykul;
end;
end;
return artykul;
end;
function p.CzyTabelaStronyWoluminuSpisuRzeczy(tab_artykul)
local parametry_modul=require("Module:Parametry");
local czy_table_baza_artykulu=parametry_modul.TypeTable(tab_artykul);
if((czy_table_baza_artykulu)and(tab_artykul["LINK"]))then return false;end;
return czy_table_baza_artykulu;
end;
function p.TylkoNazwaStronyWoluminuZTabeliPublikacji(tab_artykulu,pomin_link)
local parametry_modul=require("Module:Parametry");
if((parametry_modul.TypeTable(tab_artykulu))and(pomin_link or tab_artykulu["LINK"]))then return tab_artykulu[1];end;
return tab_artykulu;
end;
function p.TylkoStronaWoluminuBezParametrowOrazReferencji(tab_artykulu)
local parametry_modul=require("Module:Parametry");
if((parametry_modul.TypeTable(tab_artykulu))and(tab_artykulu["LINK"]))then return nil;end;
return tab_artykulu;
end;
function p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_artykulu_strony,parametry,naglowek,tab_innej_przekierowania_strony)
local parametry_modul=require("Module:Parametry");
parametry=parametry_modul.CzyTak(parametry) and parametry or nil;
naglowek=parametry_modul.CzyTak(naglowek) and naglowek or nil;
return (parametry or naglowek or tab_innej_przekierowania_strony) and {nazwa_artykulu_strony,parametry,naglowek,["LINK"]=true,tab_innej_przekierowania_strony,} or nazwa_artykulu_strony;
end;
function p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab_artykul,naglowek,pomin_link)
local parametry_modul=require("Module:Parametry");
if(parametry_modul.TypeTable(tab_artykul))then
if(pomin_link or tab_artykul["LINK"])then
local nazwa_artykulu_strony=tab_artykul[1];
if(naglowek)then
local parametry=tab_artykul[2];
local naglowek=tab_artykul[3];
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return nazwa_artykulu_strony;
end;
else
return tab_artykul;
end;
else
return tab_artykul;
end;
end;
function p.DekodowanieTekstu(nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci)
return function(tekst,tryb,czy_nie_odstepy,drugi_wynik,czy_drugi_wynik_przetworzony)
if(not tekst)then return tekst;end;
local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne");
local tekst,tekst2=stronicowyparser_pomocne_modul.DekodowanieTekstuNazwLinku(tekst,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,tryb,czy_nie_odstepy,drugi_wynik,czy_drugi_wynik_przetworzony);
return tekst,tekst2;
end;
end;
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)
local obiekt=obiekt or "ARCHIW";
local szablonowe_modul=require("Module:Szablonowe");
kod=kod or szablonowe_modul.NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt);
kod=kod+1;
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
return szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod),kod;
end;
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)
----
--nazwa_modulu_szablonowa=nazwa_modulu_szablonowa or nazwa_modulu;
local szablonowe_modul=require("Module:Szablonowe");
local czy_kodowanie=mw.ustring.match(nazwa_szablonu,szablonowe_modul.NormaWzoruKodowaniaTekstu());
if(not czy_kodowanie)then return nil,true;end;
if(not czy_uwzgledniac_modyfikatory)then
local czy_modyfikatory=mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:");
if(czy_modyfikatory)then return nil,false;end;
end;
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_tekst=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_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_strona_zbiorcza=stronicowyparser_obiekty_modul.strona_zbiorcza
----
local tab_szablony_strona_start=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu;
----
local techniczne_modul=require("Module:Techniczne");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local czy_szablon_wszystko=false;
local max;
local nazwa_szablonu=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(nazwa_szablonu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,
function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul)
if(obiekt=="SZABLON")then
local wynik,jaki_wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_szablonowa,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((tab_szablony[nazwa_szablonu])
---or(tab_naglowki[nazwa_szablonu])
--or(tab_tekst[nazwa_szablonu]
or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])
or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])
or(tab_szablony_strona_zbiorcza[nazwa_szablonu])
or(tab_szablony_strona_start[nazwa_szablonu])
)then return nil,false;end;
return true,true;
end,
nil,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
for _,nazwa_modulu_lua in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_ramek_lua)do
if((nazwa_szablonu==nazwy_np_modul.Module..":"..nazwa_modulu_lua)
or(mw.ustring.match(nazwa_szablonu,'^'..nazwy_np_modul.Module..":"..techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](nazwa_modulu_lua).."/"))
)then
return nil,false;
end;
end;
return true,true;
end,nil,nil,nil,nil,nil,nil,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kodtabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return true,true;
end);
czy_szablon_wszystko=czy_szablon_wszystko or ((jaki_wynik==nil)and true or jaki_wynik);
if(not wynik)then
local kodowanie_szablonowe;
kodowanie_szablonowe,max=p.ARCHIWLubSTARE(szablon,"ARCHIW",max,tablica_analizy_obiektow_strony_dany_modul)
return kodowanie_szablonowe;
end;
elseif((obiekt=="STARE")or(obiekt=="ARCHIW"))then
return nil,true;
elseif((obiekt=="ZMIENNA")and(not czy_z_kluczem))then
local klucz=mw.ustring.match(szablon,"^%{%{%{%s*klucz(%d*)%s*%|.*%}%}%}$") or mw.ustring.match(szablon,"^%{%{%{%s*klucz(%d*)%s*%}%}%}$");
if(klucz)then
if((klucz=="")or(mw.ustring.match(klucz,"^[1-9]%d*$")))then
local kodowanie_szablonowe;
kodowanie_szablonowe,max=p.ARCHIWLubSTARE(szablon,"ARCHIW",max,tablica_analizy_obiektow_strony_dany_modul)
return kodowanie_szablonowe;
end;
end;
end;
return szablon;
end);
if(czy_szablon_wszystko)then
local frame=mw.getCurrentFrame();
nazwa_szablonu=frame:preprocess(nazwa_szablonu);
end;
return nazwa_szablonu,true;
end;
function p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_szablonowe_kolidacja=stronicowyparser_obiekty_modul.nazwy_szablonowe_kolidacja;
if(nazwy_szablonowe_kolidacja[nazwa_szablonu])then return nazwa_szablonu,false;end;
local nazwa_linku=stronicowyparser_obiekty_modul.przekierowania_szablonowe_linkowe_inteligentne_inne[nazwa_szablonu];
if(nazwa_linku)then return nazwa_linku,true;end;
local litery_przestrzeni_kolidacja=stronicowyparser_obiekty_modul.litery_przestrzeni_kolidacja;
local link,prze,ustep,dwa=mw.ustring.match(nazwa_szablonu,"^(%a)(%a)(%a?)(%d?)$");
if((link)and(link=="L"))then
if((ustep=="")or(ustep=="u"))then
prze=litery_przestrzeni_kolidacja[prze] or prze;
local przez_literowa=stronicowyparser_obiekty_modul.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne[prze];
if(przez_literowa)then
local nazwa="Link"..przez_literowa..((ustep~="")and "Ustęp" or "")..dwa;
return nazwa,true;
end;
if(ustep=="")then
if(prze=="u")then return "LinkUstęp"..dwa,true;end;
if(prze=="o")then return "LinkOgólne"..dwa,true;end;
end;
else
local projektowe_literowe=stronicowyparser_obiekty_modul.nazwy_projektowe_serwisy_linkowe_inteligentne[prze];
if(projektowe_literowe)then
ustep=litery_przestrzeni_kolidacja[ustep] or ustep;
local prze_literowa=stronicowyparser_obiekty_modul.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne[ustep];
if(prze_literowa)then
return "Link"..projektowe_literowe..prze_literowa..dwa,true;
end;
end;
end;
return nazwa_szablonu,false;
else
local link,projekt,prze,ustep,dwa=mw.ustring.match(nazwa_szablonu,"^(%a)(%a)(%a)(%a?)(%d?)$");
if((link)and(link=="L"))then
if((ustep=="")or(ustep=="u"))then
local projektowe_literowe=stronicowyparser_obiekty_modul.nazwy_projektowe_serwisy_linkowe_inteligentne[projekt];
if(projektowe_literowe)then
prze=litery_przestrzeni_kolidacja[prze] or prze;
local prze_literowa=stronicowyparser_obiekty_modul.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne[prze];
if(prze_literowa)then
return "Link"..projektowe_literowe..prze_literowa..((ustep~="") and "Ustęp" or "")..dwa,true;
end;
end;
end;
end;
return nazwa_szablonu,false;
end;
end;
function p.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa,tablica_danych_parametrow_szablonu_strony,kod,czy_liczyc_przekierowanie)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[0];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.tablica_analizy_linku;
end;
end;
end;
nazwa=(not czy_liczyc_przekierowanie)and p.SzablonyPrzekierowanioweInteligentne(nazwa) or nazwa;
local function AnalizaSzablonowaLinku()
local nazwa,dwa=mw.ustring.match(nazwa,"^Link(%a+)(2?)$");
if(not nazwa)then return;end;
if(dwa=="")then dwa=nil;else dwa=true;end;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
----
local tab_przestrzen=stronicowyparser_obiekty_modul.kody_szablony_linkowe_przestrzenne;
local tab_jezyk=stronicowyparser_obiekty_modul.kody_szablony_linkowe_dialektu;
local tab_projektowe=stronicowyparser_obiekty_modul.kody_szablony_linkowe_projektowe;
----
local nazwa_nowa,ustep_nowa=mw.ustring.match(nazwa,"^(.+)(Ustęp)$")
nazwa=nazwa_nowa or nazwa;
local czy_ustep=ustep_nowa and true or false;
local przestrzen=mw.ustring.match(nazwa,"^(%u%l+)$");
if(przestrzen)then
local przestrzenne=tab_przestrzen[przestrzen];
if(przestrzenne)then
return {przestrzenne[1],przestrzenne[2],nil,czy_ustep,dwa,};
end;
end;
----
local jezyk,przestrzen=mw.ustring.match(nazwa,"^(%u%l+)(%u%l+)$");
if(jezyk and przestrzen)then
local jezykowe=tab_jezyk[jezyk];local przestrzenne=tab_przestrzen[przestrzen];
if(jezykowe and przestrzenne)then
return {przestrzenne[1],przestrzenne[2],jezykowe,czy_ustep,dwa,};
end;
----
local projektowe=tab_projektowe[jezyk];
if(projektowe and przestrzenne)then
return {przestrzenne[1],projektowe or przestrzenne[2],czy_ustep,nil,dwa,};
end;
end;
-----
local jezyk,projekt,przestrzen=mw.ustring.match(nazwa,"^(%u%l+)(%u%l+)(%u%l+)$");
if(jezyk and projekt and przestrzen)then
local jezykowe=tab_jezyk[jezyk];local projektowe=tab_projektowe[projekt];local przestrzenne=tab_przestrzen[przestrzen]
if(jezykowe and projektowe and przestrzenne)then
return {przestrzenne[1], projektowe or przestrzenne[2],jezykowe,czy_ustep,dwa,}
end;
local projektowe=tab_projektowe[jezyk..projekt];
if(projektowe and przestrzenne)then
return {przestrzenne[1],projektowe or przestrzenne[2],nil,czy_ustep,dwa,};
end;
end;
return nil;
end;
local wynik=AnalizaSzablonowaLinku();
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[0])then tablica_danych_parametrow_szablonu_strony[0]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[0];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.tablica_analizy_linku=wynik;
end;
return wynik;
end;
function p.NazwaInnegoSzablonowegoLinkowegoObiektu(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-7];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
--local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
--local tab_szablony_inteligentne=stronicowyparser_obiekty_modul.kody_inne_szablony_linkowe_inteligentne;
local nazwa_zamiast_linku;
nazwa_szablonu=p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu);
if(nazwa_szablonu=="Sekcja referencyjna")then
local nazwa=tabela_parametrow_szablonu["nazwa"] or tabela_parametrow_szablonu[2];
if(nazwa)then return nazwa;end;
local strona=tabela_parametrow_szablonu["strona"] or tabela_parametrow_szablonu[1];
local parametry_modul=require("Module:Parametry");
local czy_strona=parametry_modul.CzyTak(strona) and true or false;
if(not czy_strona)then
local nazwy_modul=require("Module:Nazwy");
strona=nazwy_modul["PEŁNANAZWAKSIĄŻKI"]();
end;
local ustep=tabela_parametrow_szablonu["ustęp"];
local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna");
local czy_ustep=parametry_modul.CzyTak(ustep);
if(not czy_strona)then czy_ustep=not czy_ustep;end;
nazwa_zamiast_linku=sekcja_referencyjna_modul.Indentyfikator_lub_podstrona_wikiadresu_strony(strona,czy_ustep);
elseif(nazwa_szablonu=="Link wewnętrzny")then
nazwa_zamiast_linku=tabela_parametrow_szablonu["nazwa"] or (tabela_parametrow_szablonu["strona"] or "")..(tabela_parametrow_szablonu["nagłówek"]and("#"..tabela_parametrow_szablonu["nagłówek"]) or "")
elseif(nazwa_szablonu=="LinkOgólne")then
nazwa_zamiast_linku=tabela_parametrow_szablonu[2] or tabela_parametrow_szablonu[1];
elseif(nazwa_szablonu=="SpisTreści")then
local nazwa=(tabela_parametrow_szablonu["nazwa"]
or tabela_parametrow_szablonu[3]
or tabela_parametrow_szablonu["artykuł"]
or tabela_parametrow_szablonu[1]);
if(nazwa)then
local dodatek=tabela_parametrow_szablonu["dodatek"] or tabela_parametrow_szablonu[4];
if(dodatek)then dodatek=" "..dodatek;else dodatek="";end;
nazwa_zamiast_linku=nazwa..dodatek;
end;
elseif(nazwa_szablonu=="LinkURL")then
local nazwa=tabela_parametrow_szablonu["nazwa"] or tabela_parametrow_szablonu["n"];
if(nazwa)then
nazwa_zamiast_linku=nazwa;
else
local strona=tabela_parametrow_szablonu["strona"] or tabela_parametrow_szablonu["s"];
nazwa_zamiast_linku=strona;
end;
end;
if((nazwa_zamiast_linku)and(nazwa_zamiast_linku~=""))then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[-7])then tablica_danych_parametrow_szablonu_strony[-7]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-7];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=nazwa_zamiast_linku;
end;
end;
return nazwa_zamiast_linku;
end;
function p.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-8];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
nazwa_szablonu=p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu);
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
local tab_spis=inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
if(tab_spis)then
local czy_true=tab_spis[1];
local parametr;local numer;
if(czy_true)then
parametr=tabela_parametrow_szablonu[tab_spis.numer_link];
else
parametr=tabela_parametrow_szablonu[tab_spis.link];
local numer=tabela_parametrow_szablonu[tab_spis.numer];
parametr=(parametr and numer)and (numer.." "..parametr) or (parametr);
end;
if((parametr)and(parametr~=""))then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[-8])then tablica_danych_parametrow_szablonu_strony[-8]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-8];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=parametr;
end;
end;
return parametr;
end;
return nil;
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA)
local numer;
if((obiekt)and(kod))then
if(obiekt=="SZABLON")then
numer=-2;
elseif(obiekt=="LINKW")then
numer=-3;
elseif(obiekt=="LINKZ")then
numer=-4;
end;
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[numer];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod[1],tablica_danych_parametrow_szablonu_strony_numer_kod[2],tablica_danych_parametrow_szablonu_strony_numer_kod[3],tablica_danych_parametrow_szablonu_strony_numer_kod[4],tablica_danych_parametrow_szablonu_strony_numer_kod[5];
end;
end;
end;
end;
local local1,local2,local3,local4,local5=p.AnalizujLinkSzablonyOrazLinki2(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA);
if((obiekt)and(kod))then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[numer])then tablica_danych_parametrow_szablonu_strony[numer]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[numer];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
tablica_danych_parametrow_szablonu_strony_numer[kod]={local1,local2,local3,local4,local5,};
end;
end;
return local1,local2,local3,local4,local5;
end;
function p.AnalizujLinkSzablonyOrazLinki2(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA)
----
local DekodowanieTekstu=p.DekodowanieTekstu(nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci);
----
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local pozycja_artykulu=nil;local nazwa=nil;
local czy_tabela_do_parsowania_artykulu=parametry_modul.TypeTable(wyzyskane_wywolanie_szablonu_spis_tresci);
if(not czy_tabela_do_parsowania_artykulu)then
pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^|%[%]]+)|(.+)%]%]$");
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^|%[%]]+)%]%]$");
end;
end;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy")
local techniczne_modul=require("Module:Techniczne");
local pelna_nazwa_spisu_tresci_analizowana=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci);
local function Artykul(strona,parametry--[[_ref]],naglowek--[[_ref]])
----
--local parametry=parametry_modul.CzyTak(parametry_ref) and parametry_ref or html_modul["ParametryStronyAdresu"](strona,true);
--local naglowek=parametry_modul.CzyTak(naglowek_ref) and naglowek_ref or html_modul["NagłówekStronyAdresu"](strona,true);
----
strona=html_modul["NazwaStronyAdresu"](strona,true);
strona=parametry_modul["Odstępy"]{[1]=strona,[2]="tak",};
local techniczne_modul=require("Module:Techniczne");
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=pelna_nazwa_spisu_tresci_analizowana,};
----
local tabela_nazw_strona={};
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw_strona);
local nazwa_przestrzeni_ksiazki_strony=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw_strona);
local nazwa_ksiazki_strony=(nazwa_przestrzeni_ksiazki_strony~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw_strona) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw_strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw_strona);
--if((tab_nazwa_spisow_przekierowaniowych)and(tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony])and
--[[else]]
if(tab_nazwa_spisow_przekierowaniowych)then
local techniczne_modul=require("Module:Techniczne");
local strona_przekierowania=techniczne_modul.PrzekierowanieDoStrony(strona);
local function DaneRozwazone(strona_przekierowania,inna_ksiazka,czy_przekierowanie)
local tabela_nazw_przekierowanie={};
----
local nazwa_przestrzeni_strony_przekierowania=nazwy_modul["NAZWAPRZESTRZENI"](strona_przekierowania,tabela_nazw_przekierowanie);
local nazwa_przestrzeni_ksiazki_strony_przekierowania=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie);
local nazwa_ksiazki_strony_przekierowania=(nazwa_przestrzeni_ksiazki_strony~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie) or nazwy_modul["NAZWAKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie);
local nazwa_artykulu_strony_przekierowania=((not inna_ksiazka) and (nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie)) or (nazwa_artykulu_strony));
----
local tabela_nazw_adresu_przekierowania={};
local parametry_przekierowania=((not inna_ksiazka) and (html_modul["ParametryStronyAdresu"](strona_przekierowania,true,tabela_nazw_adresu_przekierowania)) or nil);
local naglowek_przekierowania=((not inna_ksiazka) and (html_modul["NagłówekStronyAdresu"](strona_przekierowania,true,tabela_nazw_adresu_przekierowania)) or nil);
----
if((nazwa_przestrzeni_strony_przekierowania==nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki_strony_przekierowania==nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki_strony_przekierowania==nazwa_ksiazki))then
local czy_inne_ksiazka=((inna_ksiazka)or(((nazwa_przestrzeni_strony~=nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki_strony~=nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki_strony~=nazwa_ksiazki))));
if(czy_inne_ksiazka)then
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony])then
tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony]={};
end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony])then
tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony]={};
end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony][nazwa_ksiazki_strony])then
tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony][nazwa_ksiazki_strony]=true;
end;
end;
return {nazwa_artykulu_strony_przekierowania,parametry_modul.CzyTak(parametry_przekierowania) and parametry_przekierowania or nil,parametry_modul.CzyTak(naglowek_przekierowania) and naglowek_przekierowania or nil,{czy_inne_ksiazka and {nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,inna_ksiazka,true,czy_przekierowanie,} or nil,czy_przekierowanie and nazwa_artykulu_strony or nil,czy_przekierowanie and parametry or nil,czy_przekierowanie and naglowek or nil,} or nil,};
else
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki_strony==nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return {nazwa_artykulu_strony,parametry_modul.CzyTak(parametry) and parametry or nil,parametry_modul.CzyTak(naglowek) and naglowek or nil,{{nazwa_przestrzeni_strony_przekierowania,nazwa_przestrzeni_ksiazki_strony_przekierowania,nazwa_ksiazki_strony_przekierowania,true,false,czy_przekierowanie,},nazwa_artykulu_strony_przekierowania,parametry_przekierowania,naglowek_przekierowania,} or nil,};
else
return nil,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony;
end;
end;
end;
if(strona_przekierowania)then
return DaneRozwazone(strona_przekierowania,nil,true);
else
if((tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony])
and(tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony])and(tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony][nazwa_ksiazki_strony]))then
return {nazwa_artykulu_strony,parametry_modul.CzyTak(parametry) and parametry or nil,parametry_modul.CzyTak(naglowek) and naglowek or nil,{{nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,true,true,false,},nil,nil,nil,},};
end;
local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,"");
local strona_przekierowania=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_ksiazki);
if(strona_przekierowania)then
return DaneRozwazone(strona_przekierowania,true,false);
end;
end;
end;
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki_strony==nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return {nazwa_artykulu_strony,parametry,naglowek,};
end
return nil,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony;
end;
---
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local function DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,parametry_ref,naglowek_ref,nazwa,czy_link,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(not mw.ustring.match(pozycja_artykulu,"[{}%[%]|]"))then
if((czy_nie_dwukropek)and(((not kod_jezyka)and(not kod_projektu)and(not klucz_projektu))or (parametry_modul.CzyTak(klucz_projektu)and((klucz_projektu==kod_jezyka_tego_projektu)or(klucz_projektu==kod_projektu_tego_projektu)or(klucz_projektu==kod_jezyka_tego_projektu..":"..kod_projektu_tego_projektu)or(klucz_projektu==kod_projektu_tego_projektu..":"..kod_jezyka_tego_projektu))) or(((kod_jezyka)and(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu)and(kod_projektu==kod_projektu_tego_projektu))) or ((kod_jezyka)and(not kod_projektu)and(kod_jezyka==kod_jezyka_tego_projektu))or((kod_projektu)and(not kod_jezyka)and(kod_projektu==kod_projektu_tego_projektu))))then
----
pozycja_artykulu=DekodowanieTekstu(pozycja_artykulu,2,nil);
parametry_ref=DekodowanieTekstu(parametry_ref,2,nil);
naglowek_ref=DekodowanieTekstu(naglowek_ref,2,nil);
----
local czy_link=czy_link or mw.ustring.match(pozycja_artykulu,"^:");
local tabela_nazw_adresu_artykulu={};
parametry_ref=parametry_modul.CzyTak(parametry_ref) and parametry_ref or html_modul["ParametryStronyAdresu"](pozycja_artykulu,true,tabela_nazw_adresu_artykulu);
naglowek_ref=parametry_modul.CzyTak(naglowek_ref) and naglowek_ref or html_modul["NagłówekStronyAdresu"](pozycja_artykulu,true,tabela_nazw_adresu_artykulu);
pozycja_artykulu=html_modul["NazwaStronyAdresu"](pozycja_artykulu,true,tabela_nazw_adresu_artykulu);
----
local czy_pozycja_artykulu=pozycja_artykulu;
local pozycja_artykulu,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony=Artykul(pozycja_artykulu,parametry_ref,naglowek_ref);
if(pozycja_artykulu)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(pozycja_artykulu[1],pozycja_artykulu[2],pozycja_artykulu[3],pozycja_artykulu[4]),nazwa,nil,nil,},1,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
local nazwy_modul=require("Module:Nazwy");
--local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=czy_pozycja_artykulu,};
strona=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni_strony==nazwy_np_modul.Main)
or(nazwa_przestrzeni_strony==nazwy_np_modul.Wikijunior)
or(nazwa_przestrzeni_strony==nazwy_np_modul.Wikibooks)
or(nazwa_przestrzeni_strony==nazwy_np_modul.User)
)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(strona,parametry_ref,naglowek_ref,nil),nazwa,nil,nil,},2,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
elseif(
czy_link
or parametry_modul.CzyTak(klucz_projektu)
or parametry_modul.CzyTak(kod_jezyka)
or parametry_modul.CzyTak(kod_projektu)
or ((nazwa_przestrzeni_strony~=nazwy_np_modul.Category)and(nazwa_przestrzeni_strony~=nazwy_np_modul.File))
)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(strona,parametry_ref,naglowek_ref,nil),nazwa,nil,nil,},3,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
end;
else
local pozycja_artykulu_stara=pozycja_artykulu;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka=kod_jezyka or pudelko_modul["Kod języka tego projektu"]();
local kod_projektu=kod_projektu or pudelko_modul["Kod projektu tego projektu"]();
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
pozycja_artykulu=DekodowanieTekstu(pozycja_artykulu,2,nil);
local czy_link=czy_link or mw.ustring.match(pozycja_artykulu,"^:");
local nazwa_strony_linku;
local uzyskana_nazwa_strony_linku;
if(czy_nie_dwukropek)then
nazwa_strony_linku=pozycja_artykulu;
else
local kod_jezyka_poczatkowy, kod_projektu_poczatkowy;
nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy);
uzyskana_nazwa_strony_linku=nazwa_strony_linku;
end;
----
parametry_ref=DekodowanieTekstu(parametry_ref,2,nil);
naglowek_ref=DekodowanieTekstu(naglowek_ref,2,nil);
----
local html_modul=require("Module:Html");
local tabela_nazw_adresu={};
local parametry_strony=parametry_modul.CzyTak(parametry_ref) and parametry_ref or html_modul["ParametryStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu);
local naglowek_strony=parametry_modul.CzyTak(naglowek_ref) and naglowek_ref or html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu);
nazwa_strony_linku=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu);
local nazwy_modul=require("Module:Nazwy");
----
local tabela_nazw_artykul={};
local nazwa_przestrzeni=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa_strony_linku,['kod języka']=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw_artykul);
local nazwa_kanoniczna_przestrzeni;
local biezaca_wiki;
if(tabela_nazw_artykul.czy_aktualna_wiki==nil)then
biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
else
biezaca_wiki=tabela_nazw_artykul.czy_aktualna_wiki;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(biezaca_wiki)then
local czy_wyswietlic_link=((uzyskana_nazwa_strony_linku)and(uzyskana_nazwa_strony_linku~=pozycja_artykulu))and true or false;
if(nazwa_przestrzeni)then
if((nazwa_przestrzeni==nazwy_np_modul.Main)
or(nazwa_przestrzeni==nazwy_np_modul.Wikijunior)
or(nazwa_przestrzeni==nazwy_np_modul.Wikibooks)
or(nazwa_przestrzeni==nazwy_np_modul.User)
)then
local pozycja_artykulu,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony=Artykul(nazwa_strony_linku);
if(pozycja_artykulu)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(pozycja_artykulu[1],pozycja_artykulu[2] or parametry_strony,pozycja_artykulu[3] or naglowek_strony,pozycja_artykulu[4]),nazwa,czy_wyswietlic_link and kod_jezyka_koncowy or nil,czy_wyswietlic_link and kod_projektu_koncowy or nil,czy_wyswietlic_link and pozycja_artykulu_stara or nil,},1,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
nazwa_strony_linku=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony);
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,czy_wyswietlic_link and kod_jezyka_koncowy or nil,czy_wyswietlic_link and kod_projektu_koncowy or nil,czy_wyswietlic_link and pozycja_artykulu_stara or nil,},2,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
elseif(
czy_link
or (nazwa_strony_linku~=pozycja_artykulu)
or ((nazwa_przestrzeni~=nazwy_np_modul.Category)and(nazwa_przestrzeni~=nazwy_np_modul.File))
)then
nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=nazwa_strony_linku,['kod języka']=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw_artykul)
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,czy_wyswietlic_link and kod_jezyka_koncowy or nil,czy_wyswietlic_link and kod_projektu_koncowy or nil,czy_wyswietlic_link and pozycja_artykulu_stara or nil,},3,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=nazwa_strony_linku,['kod języka']=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw_artykul);
nazwa_kanoniczna_przestrzeni=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_kanoniczna_przestrzeni)then
if((nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.Main)
or(nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.Wikijunior)
or(nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.Project)
or(nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.User)
)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,pozycja_artykulu_stara,},4,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,pozycja_artykulu_stara,},5,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
end;
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
end;
---
local czy_pozycja_artykulu=nil;
if((not pozycja_artykulu)and(not czy_tabela_do_parsowania_artykulu))then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^({{[^{}]+}})$");
if(link_szablon)then
local szablonowe_modul=require("Module:Szablonowe");
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(link_szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
nazwa_szablonu=p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu);
if(nazwa_szablonu=="SpisTreści")then
local tabela_nazw_spis_rzeczy={};
pozycja_artykulu=p.SpisRzeczySzablon(nazwa_szablonu,1,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if(not pozycja_artykulu)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
------
local nazwa_ksiazki=p.SpisRzeczySzablon(nazwa_szablonu,2,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if(not nazwa_ksiazki)then
pozycja_artykulu=DekodowanieTekstu(pozycja_artykulu,2,nil);
local nazwa=p.SpisRzeczySzablon(nazwa_szablonu,3,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
local dodatek=p.SpisRzeczySzablon(nazwa_szablonu,4,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if((nazwa)or(dodatek))then
local nazwa=(nazwa or pozycja_artykulu)..((dodatek) and (" "..dodatek) or "");
------
return {pozycja_artykulu,nazwa,},1,true,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
return {pozycja_artykulu,nil,},1,true,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
local adres=nazwa_spisu_tresci..((pozycja_artykulu~="")and ("/"..pozycja_artykulu)or "");
adres=p.DekodowanieNazwySzablonu(adres,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or adres;
local nazwa=p.SpisRzeczySzablon(nazwa_szablonu,3,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
local datatek=p.SpisRzeczySzablon(nazwa_szablonu,4,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if((nazwa)or(dodatek))then
nazwa=(nazwa or pozycja_artykulu)..((dodatek) and (" "..dodatek) or "");
end;
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(adres);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(adres,nil,nil,nazwa,true,czy_nie_dwukropek,nil,nil,nil,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
end;
elseif(nazwa_szablonu=="Sekcja referencyjna")then
local tabela_nazw_sekcja_referencyjna={};
local strona=p.SpisRzeczySzablon(nazwa_szablonu,1,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local podstrona=p.SpisRzeczySzablon(nazwa_szablonu,3,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
-----
local strona_wolumin;
local nazwa=p.SpisRzeczySzablon(nazwa_szablonu,2,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
if(strona)then
strona,strona_wolumin=DekodowanieTekstu(strona,nazwa and 2 or 3,nil,(not nazwa) and true or nil);
end;
podstrona=podstrona and DekodowanieTekstu(podstrona,2,nil) or podstrona;
----
local ustep=p.SpisRzeczySzablon(nazwa_szablonu,4,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local od_malej=p.SpisRzeczySzablon(nazwa_szablonu,5,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local od_duzej=p.SpisRzeczySzablon(nazwa_szablonu,6,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
----
local nazwa_przestrzeni_nazw=p.SpisRzeczySzablon(nazwa_szablonu,7,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local nazwa_jednostki=p.SpisRzeczySzablon(nazwa_szablonu,8,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
----
local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna");
----
if((not nazwa_przestrzeni_nazw)and(not nazwa_jednostki))then
----
local strona_artykulu,nazwa_artykulu=sekcja_referencyjna_modul.Wolumin(strona,podstrona,nazwa,ustep,od_malej,od_duzej,nil,true,strona_wolumin);
----
local html_modul=require("Module:Html");
local tabela_nazw_adresu={};
local parametry_ref=html_modul["ParametryStronyAdresu"](strona_artykulu,true,tabela_nazw_adresu);
local naglowek_ref=html_modul["NagłówekStronyAdresu"](strona_artykulu,true,tabela_nazw_adresu);
----
local strona_ref=html_modul["NazwaStronyAdresu"](strona_artykulu,true,tabela_nazw_adresu);
-----
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(strona_ref,parametry_ref,naglowek_ref),nazwa_artykulu,},1,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false,(((strona)and(not nazwa)) and true or nil);
else
local pudelko_modul=require("Module:Pudełko");
local pelna_nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki"](
{
args={
["nazwa przestrzeni nazw"]=nazwa_przestrzeni_nazw,
["nazwa jednostki"]=nazwa_jednostki,
}
},0);
local strona_artykulu,nazwa_artykulu=sekcja_referencyjna_modul.Wolumin(strona,podstrona,nazwa,ustep,od_malej,od_duzej,pelnanazwajednostki,nil,strona_wolumin);
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(strona_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(strona_artykulu,nil,nil,nazwa_artykulu,true,czy_nie_dwukropek,nil,nil,nil,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow),(((strona)and(not nazwa)) and true or nil);
end;
elseif(nazwa_szablonu=="Link wewnętrzny")then
local pozycja_artykulu=tabela_parametrow_szablonu["strona"];
if(not pozycja_artykulu)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
local nazwa=tabela_parametrow_szablonu["nazwa"];
local naglowek=tabela_parametrow_szablonu["nagłówek"];
local klucz_projektu=tabela_parametrow_szablonu["klucz projektu"];
local kod_jezyka=tabela_parametrow_szablonu['kod języka'];
local kod_projektu=tabela_parametrow_szablonu["kod projektu"];
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,naglowek,nazwa,true,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
else
local nazwa_szablonu_nowa,dwa=mw.ustring.match(nazwa_szablonu,"^(LinkOgólne)(2?)$");
if(nazwa_szablonu_nowa)then
local pozycja_artykul;
local strona=tabela_parametrow_szablonu[1];
if(not strona)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
local czy_dwa=(dwa~="")and true or false;
local nazwa=(not czy_dwa) and tabela_parametrow_szablonu[2] or nil;
local klucz_projektu=tabela_parametrow_szablonu["klucz projektu"] or tabela_parametrow_szablonu["k"];
local kod_jezyka=tabela_parametrow_szablonu['kod języka'] or tabela_parametrow_szablonu["kj"];
local kod_projektu=tabela_parametrow_szablonu["kod projektu"] or tabela_parametrow_szablonu["kp"];
local miano_przestrzeni_nazw=tabela_parametrow_szablonu["miano przestrzeni nazw"]
or tabela_parametrow_szablonu["przestrzeń"]
or tabela_parametrow_szablonu["f"];
if(miano_przestrzeni_nazw)then
pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..strona;
else
pozycja_artykulu=strona;
end;
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,true,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
else
local dane_szablonu_linku=p.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod,true);
if(dane_szablonu_linku)then
local pozycja_artykulu=tabela_parametrow_szablonu[1];
if(not pozycja_artykulu)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
local nazwa_przestrzeni=dane_szablonu_linku[1];
local pozycja_artykulu=(((nazwa_przestrzeni)and(nazwa_przestrzeni~=""))and (nazwa_przestrzeni..":") or "")..tabela_parametrow_szablonu[1];
local nazwa=((not dane_szablonu_linku[4])and(not dane_szablonu_linku[5])) and (tabela_parametrow_szablonu[2]) or nil;
local klucz_projektu;local kod_jezyka;local kod_projektu;
if((not dane_szablonu_linku[2])and(not dane_szablonu_linku[3]))then
klucz_projektu=tabela_parametrow_szablonu["klucz projektu"] or tabela_parametrow_szablonu["k"];
kod_jezyka=tabela_parametrow_szablonu['kod języka'] or tabela_parametrow_szablonu["kj"];
kod_projektu=tabela_parametrow_szablonu["kod projektu"] or tabela_parametrow_szablonu["kp"];
else
kod_jezyka=dane_szablonu_linku[3];
kod_projektu=dane_szablonu_linku[2];
end;
local czy_nie_dwukropek;
if(nazwa_przestrzeni=="")then
czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
elseif((not kod_jezyka)and(not kod_projektu)and(not klucz_projektu))then
czy_nie_dwukropek=true;
else
czy_nie_dwukropek=false;
end;
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,true,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
elseif((__FUNKCJA)and(__FUNKCJA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)))then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},true;
end;
end;
end;
end);
else
local nazwa_strony=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[(%S+)%s*%]$");
if(nazwa_strony)then
nazwa_strony=html_modul.DecodeHtml(nazwa_strony,true);
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony,nil,nil),nil,nil,nil, nazwa_strony,"url",},6,false,nil,false;
else
local nazwa_strony,nazwa_linku=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[(%S+)%s+([^%[%]]-)%s*%]$");
if((nazwa_strony)and(nazwa_linku))then
nazwa_strony=html_modul.DecodeHtml(nazwa_strony,true);
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony,nil,nil),nazwa_linku,nil,nil, nazwa_strony,"url",},6,false,nil,false;
end;
end;
end;
elseif(not czy_tabela_do_parsowania_artykulu)then
local specjalne_modul=require("Module:Specjalne");
if(specjalne_modul.CzyInterwiki(wyzyskane_wywolanie_szablonu_spis_tresci))then
return nil,nil,false,nil,true;
end;
local parametry_modul=require("Module:Parametry");
--pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
czy_pozycja_artykulu=pelna_nazwa_spisu_tresci_analizowana.."/"..czy_pozycja_artykulu;
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(czy_pozycja_artykulu,nil,nil,nazwa,true,true,nil,nil,nil,nil);
else
pozycja_artykulu=nil;
return {pozycja_artykulu,nazwa},1,false,nil,false;
end;
else
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,false,czy_nie_dwukropek,nil,nil,nil,nil);
end;
else
local pozycja_artykulu=wyzyskane_wywolanie_szablonu_spis_tresci[1];
local nazwa=wyzyskane_wywolanie_szablonu_spis_tresci[2];
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,true,czy_nie_dwukropek,nil,nil,nil,nil);
end;
end;
return p;
gqqvja4ktdgf7xjx4qmuqvll1vf3gav
560345
560343
2026-10-30T10:57:57Z
Persino
2851
560345
Scribunto
text/plain
local p={};
function p.SpisRzeczySzablon(nazwa_szablonu,numer,tabela_parametrow_szablonu,tabela_nazw_spisu_rzeczy_szablon,kod_num)
local numer_parametru;
if(not tabela_nazw_spisu_rzeczy_szablon.numer_parametru)then
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local tab_spisu_rzeczy;
if(not kod_num)then
tab_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_spisu_rzeczy_artykularnego_wprowadzenia_tekstu;
else
tab_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_linkowe_spisu_rzeczy;
end;
numer_parametru=tab_spisu_rzeczy[nazwa_szablonu];
if(not numer_parametru)then return nil;end;
tabela_nazw_spisu_rzeczy_szablon.numer_parametru=numer_parametru;
else
numer_parametru=tabela_nazw_spisu_rzeczy_szablon.numer_parametru;
end;
local indeks=numer_parametru[numer];
for p,_ in ipairs(indeks) do
local parametr=tabela_parametrow_szablonu[indeks[p]];
if(parametr)then
return parametr;
end;
end;
return nil;
end;
function p.LiczonyHNumer()
local tab={};
local h_numer_zapamietane=nil;
--local ostatnie_poprz=nil;
return function(h_numer,h_numer_nowe)
if(h_numer==0)then
if(#tab>0)then
local h_numer_poprz,ostatnie_poprz=unpack(tab[#tab]);
return ostatnie_poprz;
end;
return nil;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
local ostatnie;---=tab[h_numer];
local max_h_numer=nil;local min_h_numer=nil;
local ostatnie_max;local ostatnie_min;local ostatnie_ost;local ostatnie_ost_prawda=true;
for i=#tab,1,-1 do
----
local h_numer_pos,ostatnie_pos=unpack(tab[i]);
if(ostatnie_ost_prawda)then
if(h_numer_pos==h_numer)then
ostatnie_ost=ostatnie_pos;
break;
end;
ostatnie_ost_prawda=nil;
end;
----
if((h_numer>h_numer_pos)and((max_h_numer or 0)<h_numer_pos))then
if((h_numer_pos or 0)<=(max_h_numer or h_numer))then
ostatnie_max=ostatnie_pos;
max_h_numer=h_numer_pos;
end;
end;
end;
if(ostatnie_ost)then
ostatnie=ostatnie_ost;
else
ostatnie=(ostatnie_max or 0)+1;
end;
local h_numer_poprz,ostatnie_poprz=nil,nil;
if(#tab>0)then
h_numer_poprz,ostatnie_poprz=unpack(tab[#tab]);
end;
if(ostatnie>(ostatnie_poprz or 0)+1)then
ostatnie=(ostatnie_poprz or 0)+1;
end;
table.insert(tab,{h_numer,ostatnie,});
if(h_numer_nowe)then
local roznica=h_numer_nowe-ostatnie;
if(roznica==0)then
return ostatnie;
end;
local tab2={};
for i,tabs in pairs(tab)do
local name,value=unpack(tabs);
tab2[i]={name,value+roznica,};
end;
tab=tab2;
return h_numer_nowe;
end;
return ostatnie;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==0))then return nil;end;
if((numer)and(numer<1)or(numer~=math.floor(numer)))then return nil;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryKonteneraWoluminu(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
local html_modul=require("Module:Html");
if(nazwa_jednostki)then
local tabela_nazw_adresu={};
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true,tabela_nazw_adresu);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki,true,tabela_nazw_adresu);
end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=((nazwa_przestrzeni)and ((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "") or nazwy_modul["NAZWAPRZESTRZENI"]());
local nazwa_jednostki=(((nazwa_jednostki)and(nazwa_jednostki~=""))and nazwa_jednostki or nazwy_modul["NAZWASTRONY"]());
local pelna_nazwa_jednostki=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
pelna_nazwa_jednostki=html_modul.DecodeHtml(pelna_nazwa_jednostki,true);
pelna_nazwa_jednostki=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](pelna_nazwa_jednostki);
---
local techniczne_modul=require("Module:Techniczne");
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
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);
pelna_nazwa_jednostki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_jednostki,[2]=nazwa_modulu,};
pelna_nazwa_jednostki=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_jednostki);
local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_jednostki);
if(strona)then pelna_nazwa_jednostki=strona;end;
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_jednostki);
self.nazwa_przestrzeni_woluminu=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_jednostki);
self.nazwa_woluminu=(self.nazwa_przestrzeni_woluminu~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_jednostki) or nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_jednostki);
self.nazwa_podstrony_woluminu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_jednostki);
self.parametry_woluminu=false;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[self.nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return;end;
local tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[self.nazwa_przestrzeni_woluminu];
if(not tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki)then return;end;
local tab_lista_artykulow_w_ksiazce=tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki[self.nazwa_woluminu];
if(not tab_lista_artykulow_w_ksiazce)then
return;
end;
local oryginalna_ksiazka=tab_lista_artykulow_w_ksiazce.adres_woluminu_bazowego_spisu_rzeczy;
if(oryginalna_ksiazka)then
self.nazwa_przestrzeni=oryginalna_ksiazka[1];
self.nazwa_przestrzeni_woluminu=oryginalna_ksiazka[2];
self.nazwa_woluminu=oryginalna_ksiazka[3];
end;
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_przestrzeni_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
self.nazwa_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
self.nazwa_podstrony_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
self.parametry_woluminu=true;
end;
end;
function p.TabelaListyStronWoluminu(self,frame,tabela_listy_danych_analizy_ksiazki,czy_podana,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)
local self_tab;
if((not nazwa_przestrzeni)or(not nazwa_przestrzeni_ksiazki)or(not nazwa_ksiazki)or(not nazwa_artykulu))then
if((self.parametry_woluminu)and((not tabela_listy_danych_analizy_ksiazki)or(tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu)))then
if(not tabela_listy_danych_analizy_ksiazki)then
self_tab,tabela_listy_danych_analizy_ksiazki=p.Self(self,tabela_listy_danych_analizy_ksiazki);
end;
if((not self_tab)or((self_tab)and(tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu)))then
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw;
local tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki=tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki;
local tab_lista_artykulow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
local tab_lista_zmiennych_w_artykule=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu;
return tab_lista_artykulow_w_ksiazce.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;
end;
end;
end;
if((not self_tab)or(not tabela_listy_danych_analizy_ksiazki))then
self_tab,tabela_listy_danych_analizy_ksiazki=p.Self(self,tabela_listy_danych_analizy_ksiazki);
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni or((not czy_podana) and self_tab.nazwa_przestrzeni_podana or self_tab.nazwa_przestrzeni)];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then
return nil,nil,nil,nil,nil;
end;
local tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_przestrzeni_ksiazki or((not czy_podana) and self_tab.nazwa_przestrzeni_woluminu_podana or self_tab.nazwa_przestrzeni_woluminu)];
if(not tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki)then
return nil,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,nil,nil,nil;--[[--Do poprawienia--]]
end;
local tab_lista_artykulow_w_ksiazce=tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki or((not czy_podana) and self_tab.nazwa_woluminu_podana or self_tab.nazwa_woluminu)];
if(not tab_lista_artykulow_w_ksiazce)then
return nil,lista_artykulow_w_ksiazkach_w_danej_przestrzeni,tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki,nil,nil;
end;
local tab_lista_zmiennych_w_artykule=tab_lista_artykulow_w_ksiazce.lista_podstron_woluminu and tab_lista_artykulow_w_ksiazce.lista_podstron_woluminu[nazwa_artykulu or ((not czy_podana) and self_tab.nazwa_podstrony_woluminu_podana or self_tab.nazwa_podstrony_woluminu)] or nil;
return tab_lista_artykulow_w_ksiazce.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;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.Self(self,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych;
local self_tab={};
self_tab.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self_tab.nazwa_przestrzeni_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
self_tab.nazwa_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
self_tab.nazwa_podstrony_woluminu=tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu;
self_tab.nazwa_przestrzeni_podana=self.nazwa_przestrzeni;
self_tab.nazwa_przestrzeni_woluminu_podana=self.nazwa_przestrzeni_woluminu;
self_tab.nazwa_woluminu_podana=self.nazwa_woluminu;
self_tab.nazwa_podstrony_woluminu_podana=self.nazwa_podstrony_woluminu;
return self_tab,tabela_listy_danych_analizy_ksiazki;
end;
function p.KompletnaNazwaWoluminu(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..((self.nazwa_przestrzeni_woluminu~="")and (self.nazwa_przestrzeni_woluminu.."/") or "")..self.nazwa_woluminu
end;
function p.NazwaPodStronyWoluminu(self,frame)
return self.nazwa_podstrony_woluminu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.StronaArtykularnaKompletna(artykul,pelna_nazwa_ksiazki_w_bazie,przekierowanie_w_bazie,naglowek,ksiazka,analizowana)
local stronicowyparser_modul=require("Module:StronicowyParser");
local nazwy_modul=require("Module:Nazwy");
local czy_z_nazwa_ksiazki=ksiazka and (not analizowana) and pelna_nazwa_ksiazki_w_bazie;
local pelna_nazwa_ksiazki=(czy_z_nazwa_ksiazki and (pelna_nazwa_ksiazki_w_bazie[4])) and nazwy_modul["NazwaModułu"](pelna_nazwa_ksiazki_w_bazie[1],pelna_nazwa_ksiazki_w_bazie[2],pelna_nazwa_ksiazki_w_bazie[3],"") or nil;
local artykul=czy_z_nazwa_ksiazki and not pelna_nazwa_ksiazki_w_bazie[5] and p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(przekierowanie_w_bazie,naglowek) or artykul;
return ksiazka and ((((pelna_nazwa_ksiazki)and(pelna_nazwa_ksiazki~=""))
and(pelna_nazwa_ksiazki)or stronicowyparser_modul["AktualnaKsiążka"](mw.getCurrentFrame())).."/"..artykul)
or artykul;
end;
function p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki)
p:AnalizujArgumentySzablonu(frame);
p:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce_spis=p:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce_spis)then return nil;end;
local tab_naglowkow={};
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce_spis)do
local rozdzial=tab_lista[1][1];
local poziom_rozdzialu=tab_lista[1][2][1];
local czy_centrowany=tab_lista[1][2][4];
if((poziom_rozdzialu)and(poziom_rozdzialu>0)and(not czy_centrowany))then
table.insert(tab_naglowkow,rozdzial);
end;
end;
self.tablica_napisowa_wprowadzenia_tekstu=tab_naglowkow;
return tab_naglowkow;
end;
function p.LosowyNapisProwadzeniaTekstuBezPierwszegoOrazOstatniegoNapisuSpisuRzeczy(self,frame,tabela_listy_danych_analizy_ksiazki)
self.numer_pomiedzy_napisu_wprowadzenia_tekstu=tonumber(frame.args[1]) or 1;
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
if(not self.tablica_napisowa_wprowadzenia_tekstu)then return nil;end;
self.len_tablicy_napisowej_wprowadzenia_tekstu=self.len_tablicy_napisowej_wprowadzenia_tekstu or #(self.tablica_napisowa_wprowadzenia_tekstu);
self.reszta_pomiedzy_napisu_wprowadzenia_tekstu=math.fmod(self.numer_pomiedzy_napisu_wprowadzenia_tekstu,self.len_tablicy_napisowej_wprowadzenia_tekstu-2);
local artykul=self.tablica_napisowa_wprowadzenia_tekstu[self.reszta_pomiedzy_napisu_wprowadzenia_tekstu+2];
return artykul;
end;
function p.LosowyNapisProwadzeniaTekstuWoluminu(self,frame,tabela_listy_danych_analizy_ksiazki)
self.numer_losowy_napis_wprowadzenia_tekstu=tonumber(frame.args[1]) or 1;
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
if(not self.tablica_napisowa_wprowadzenia_tekstu)then return nil;end;
self.len_tablicy_napisowej_wprowadzenia_tekstu=self.len_tablicy_napisowej_wprowadzenia_tekstu or #(self.tablica_napisowa_wprowadzenia_tekstu);
self.reszta_losowy_napis_wprowadzenia_tekstu=math.fmod(self.numer_losowy_napis_wprowadzenia_tekstu,self.len_tablicy_napisowej_wprowadzenia_tekstu);
local artykul=self.tablica_napisowa_wprowadzenia_tekstu[self.reszta_losowy_napis_wprowadzenia_tekstu+1];
return artykul;
end;
function p.PierwszyNapisWprowadzeniaTekstu(self,frame)
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
return self.tablica_napisowa_wprowadzenia_tekstu[1];
end;
function p.OstatniNapisWprowadzeniaTekstu(self,frame)
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
return self.tablica_napisowa_wprowadzenia_tekstu[#(self.tablica_napisowa_wprowadzenia_tekstu)];
end;
function p.LiczbaNapisowaWprowadzeniaTekstu(self,frame)
self.tablica_napisowa_wprowadzenia_tekstu=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame,tabela_listy_danych_analizy_ksiazki);
self.len_tablicy_napisowej_wprowadzenia_tekstu=self.len_tablicy_napisowej_wprowadzenia_tekstu or #(self.tablica_napisowa_wprowadzenia_tekstu);
return self.len_tablicy_napisowej_wprowadzenia_tekstu;
end;
function p.IteratorPoWprowadzeniachNapisowychTekstu(self,frame)
local tab_naglowkow=self.tablica_napisowa_wprowadzenia_tekstu or p.TablicaNapisowaPoWprowadzeniachTekstu(self,frame);
local parametry_modul=require("Module:Parametry");
return parametry_modul.IteratorPoNumerowanychElementachTablicy(tab_naglowkow);
end;
function p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,spis_tresci,inne_spisy,dodatkowe_artykuly)
p:AnalizujArgumentySzablonu(frame);
local 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;
if(not tab_lista_artykulow_w_ksiazce_spis)then
p:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
tab_lista_artykulow_w_ksiazce_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=p:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
spis_tresci=tab_lista_artykulow_w_ksiazce.nazwa_bazowego_spisu;
inne_spisy=tab_lista_artykulow_w_ksiazce.tab_inne_spisy;
dodatkowe_artykuly=tab_lista_artykulow_w_ksiazce.dodatkowe_strony_woluminu;
end;
if(not tab_lista_artykulow_w_ksiazce_spis)then return nil;end;
local args=p:Args();
local parametry_modul=require("Module:Parametry");
local czy_naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local tab_artykulow=(not czy_naglowek) and {} or nil;
local tab_listy_artykulow={};
local tab_listy_artykulow_spis={};
local czy_inne_spisy=false;
local html_modul=require("Module:Html");
local nazwa_tabeli_danego_spisu_tresci=args["spis"];
if(nazwa_tabeli_danego_spisu_tresci)then
local techniczne_modul=require("Module:Techniczne");
nazwa_tabeli_danego_spisu_tresci=html_modul.DecodeHtml(nazwa_tabeli_danego_spisu_tresci,true);
nazwa_tabeli_danego_spisu_tresci=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_tabeli_danego_spisu_tresci);
nazwa_tabeli_danego_spisu_tresci=parametry_modul["Odstępy"]{[1]=nazwa_tabeli_danego_spisu_tresci,[2]="tak",};
nazwa_tabeli_danego_spisu_tresci=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"](nazwa_tabeli_danego_spisu_tresci,"");
local nazwa_ksiazki=p:KompletnaNazwaWoluminu(frame)
local nazwa_artykulu=nazwa_ksiazki.."/"..nazwa_tabeli_danego_spisu_tresci;
local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_artykulu);
if(strona)then
local nazwy_modul=require("Module:Nazwy");
nazwa_tabeli_danego_spisu_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
end;
local czy_dany_spis=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce_spis)do
local poziom_rozdzialu=tab_lista[1][2][1];
local nazwa_spisu=nil;
if(((m==1)and(not poziom_rozdzialu))or((m>0)and(poziom_rozdzialu)and(poziom_rozdzialu==1)))then
local spis=tab_lista[1]["spis"];
nazwa_spisu=spis and spis[1] or nil;
----
if(not nazwa_tabeli_danego_spisu_tresci)then
if(nazwa_spisu)then
if(not tab_listy_artykulow["spis"])then tab_listy_artykulow["spis"]={};end;
local spis_artykulow=tab_listy_artykulow["spis"];
spis_artykulow[nazwa_spisu]={};
tab_listy_artykulow_spis=spis_artykulow[nazwa_spisu];
czy_inne_spisy=true;
else
local dodatkowe=tab_lista[1]["dodatkowe"];
if(dodatkowe)then
tab_listy_artykulow["dodatkowe"]={};
tab_listy_artykulow_spis=tab_listy_artykulow["dodatkowe"];
czy_inne_spisy=true;
end;
end;
else
if(nazwa_spisu)then
if(nazwa_spisu==nazwa_tabeli_danego_spisu_tresci)then
czy_dany_spis=true;
else
if(czy_dany_spis)then
czy_dany_spis=nil;
break;
else
czy_dany_spis=nil;
end;
end;
end;
end;
end;
if((tab_lista[2])and((not nazwa_tabeli_danego_spisu_tresci)or((nazwa_tabeli_danego_spisu_tresci)and(czy_dany_spis))))then
local pomin_pozycje=true;
for _,artykul_w_bazie in ipairs(tab_lista[2])do
if((not pomin_pozycje)or(not nazwa_spisu))then
local czy_table_baza_artykulu=p.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
----
artykul=p.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(artykul,czy_naglowek);
----
if(czy_naglowek or (not tab_artykulow[artykul]))then
if(not czy_naglowek)then tab_artykulow[artykul]=true;end;
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local przekierowanie=czy_table_baza_artykulu and artykul_w_bazie[1][3] or nil;
local pelna_nazwa_ksiazki=czy_table_baza_artykulu and artykul_w_bazie[1][4] or nil;
table.insert(tab_listy_artykulow_spis,(nazwa or przekierowanie or pelna_nazwa_ksiazki) and {artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki,} or artykul);
end;
else
pomin_pozycje=false;
end;
end;
end;
end;
local stronicowyparser_modul=require("Module:StronicowyParser");
local parametry_modul=require("Module:Parametry");
--local spis_tresci,inne_spisy,dodatkowe_artykuly=nazwa_glownego_spisu,tab_inne_spisy,tab_dodatkowe_artykuly;
if((nazwa_tabeli_danego_spisu_tresci)or(((not inne_spisy)
or(not parametry_modul["CzySąElementyNumerowaneTablicy"](inne_spisy)))
and((not dodatkowe_artykuly)
or(not parametry_modul["CzySąElementyNumerowaneTablicy"](dodatkowe_artykuly)))
))then
local tablica_spisu_glownego;
if(not nazwa_tabeli_danego_spisu_tresci)then
if(czy_inne_spisy)then
local czy_table_spis_tresci=parametry_modul.TypeTable(spis_tresci);
local tab_listy_artykulow_spis=tab_listy_artykulow["spis"] or {};
tablica_spisu_glownego=tab_listy_artykulow_spis[czy_table_spis_tresci and spis_tresci[1] or spis_tresci];
else
tablica_spisu_glownego=tab_listy_artykulow_spis;
end;
else
tablica_spisu_glownego=tab_listy_artykulow_spis;
end;
local iter_glowny=parametry_modul.IteratorPoNumerowanychElementachTablicy(tablica_spisu_glownego);
return function()
local wartosc=iter_glowny();
if(not wartosc)then return nil;end;
local czy_table_wartosc=p.CzyTabelaStronyWoluminuSpisuRzeczy(wartosc);
local artykul=czy_table_wartosc and wartosc[1] or ((not czy_table_wartosc) and wartosc or nil);
local nazwa=czy_table_wartosc and wartosc[2] or nil;
local przekierowanie=czy_table_wartosc and wartosc[3] or nil;
local pelna_nazwa_ksiazki=czy_table_wartosc and wartosc[4] or nil;
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
end;
end;
local wykorzystane_spisy={};
local iter_innych_spisow=parametry_modul.IteratorPoNumerowanychElementachTablicy(inne_spisy or {});
local czy_dodatkowe_zaanalizowane=false;
local function IteratorMain(wartosc,numer)
----
local tabela_spisu_spis=tab_listy_artykulow["spis"] or {};
local tabela_spisu=tabela_spisu_spis[wartosc];
if(tabela_spisu)then
if((wykorzystane_spisy)and(wykorzystane_spisy[wartosc]))then
tabela_spisu=nil;
else
wykorzystane_spisy[wartosc]=true;
end;
end;
local iter=parametry_modul.IteratorPoNumerowanychElementachTablicy(tabela_spisu or {});
----
local tak=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local wartosc=iter();
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
if(not wartosc)then
if(numer~=0)then
return nil;
else
local function InneSpisy()
--if(aa<10)then return nil;end;
local spis=iter_innych_spisow();
if(not spis)then
if(czy_dodatkowe_zaanalizowane)then return nil;end;
local tabela_spisu_spis=tab_listy_artykulow["dodatkowe"];
if((not tabela_spisu_spis)or(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_spisu_spis)))then return nil;end;
iter=parametry_modul.IteratorPoNumerowanychElementachTablicy(tabela_spisu_spis or {});
czy_dodatkowe_zaanalizowane=true;
wartosc=iter();
return true;
end;
local czy_table_spis=parametry_modul.TypeTable(spis);
local spis_artykul=czy_table_spis and spis[1] or spis;
if(not wykorzystane_spisy[spis_artykul])then
wykorzystane_spisy[spis_artykul]=true;
local tabela_spisu_spis=tab_listy_artykulow["spis"] or {};
local tabela_spisu=tabela_spisu_spis[spis_artykul];
if(tabela_spisu)then
iter=parametry_modul.IteratorPoNumerowanychElementachTablicy(tabela_spisu or {});
wartosc=iter();
if(not wartosc)then
return InneSpisy();
end;
else
return InneSpisy();
end;
else
return InneSpisy();
end;
return true;
end;
local koniec=InneSpisy();
if(not koniec)then return nil;end;
end;
end;
----
local czy_table_wartosc=p.CzyTabelaStronyWoluminuSpisuRzeczy(wartosc);
artykul=czy_table_wartosc and wartosc[1] or ((not czy_table_wartosc) and wartosc);
nazwa=czy_table_wartosc and wartosc[2] or nil;
przekierowanie=czy_table_wartosc and wartosc[3] or nil;
pelna_nazwa_ksiazki=czy_table_wartosc and wartosc[4] or nil;
----
artykul=p.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul);
----
tak=true;
iter2=IteratorMain(artykul,numer+1);
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
end;
if(not tak)then
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki=IterMain();
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
else
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki=iter2();
if(not artykul)then
tak=nil;
local artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki=IterMain();
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
else
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
end;
end;
end;
return Iterator;
end;
local czy_table_spis_tresci=parametry_modul.TypeTable(spis_tresci);
return IteratorMain(czy_table_spis_tresci and spis_tresci[1] or spis_tresci,0);
end;
function p.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tab_lista_artykulow_w_ksiazce_spis,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,co_ma_wykrywac)
local frame=mw.getCurrentFrame();
local nazwy_modul=require("Module:Nazwy");
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,nil,tab_lista_artykulow_w_ksiazce_spis,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly);
for nazwa_artykulu_w_bazie,nazwa,przekierowanie_w_bazie,pelna_nazwa_ksiazki in iterator do
if(pelna_nazwa_ksiazki)then
if(co_ma_wykrywac)then
if((pelna_nazwa_ksiazki[1]==nazwa_przestrzeni)and(pelna_nazwa_ksiazki[2]==nazwa_przestrzeni_ksiazki)and(pelna_nazwa_ksiazki[3]==nazwa_ksiazki))then
local czy_przekierowanie=pelna_nazwa_ksiazki[6];
if(czy_przekierowanie)then
local przekierowanie=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(przekierowanie_w_bazie,false);
if(pelna_nazwa_ksiazki[5])then
if(nazwa_artykulu==przekierowanie)then
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
return nazwa_artykulu_strony,1;
end;
else
if((nazwa_artykulu==przekierowanie))then
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
return nazwa_artykulu_strony,2;
end;
end;
else
local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
local ile,_=techniczne_modul.PoliczZbiory{[1]=nazwa_modulu,tekst=true,};
if(ile>0)then
return nazwa_artykulu,3;
else
return nazwa_artykulu,4;
end;
end;
end;
end;
else
if(not co_ma_wykrywac)then
local przekierowanie=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(przekierowanie_w_bazie,false);
if(przekierowanie)then
if(nazwa_artykulu==przekierowanie)then
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
return nazwa_artykulu_strony,1;
else
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
if(nazwa_artykulu==nazwa_artykulu_strony)then
return nazwa_artykulu_strony,2;
end;
end;
else
local nazwa_artykulu_strony=p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(nazwa_artykulu_w_bazie,false);
if(nazwa_artykulu==nazwa_artykulu_strony)then
return nazwa_artykulu,3;
end;
end;
end;
end;
end;
end;
function p.ObliczeniaInformacje(self,frame)
local iterator=p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki);
if (not iterator)then return nil;end;
----
self.tab_artykul={};
----
for artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki in iterator do
table.insert(self.tab_artykul, (nazwa or przekierowanie or pelna_nazwa_ksiazki) and {artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki,} or artykul);
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.UsuwanieElementowePoziomoweZTablicy(tablica,numer)
if(numer==0)then return tablica,0;end;
local s=0;
for i=#tablica,1,-1 do
local artykul=tablica[i][1];
local numer_artykulu_w_bazie=p.PoziomAdresu(artykul);
if(numer~=numer_artykulu_w_bazie)then
table.remove(tablica,i);
s=s+1;
end;
end;
return tablica,s;
end;
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)
local tab_artykul;local s;
if(numer>0)then
local parametry_modul=require("Module:Parametry");
tab_artykul=parametry_modul["KopiujTabelęElementów"](self.tab_artykul);
tab_artykul,s=p.UsuwanieElementowePoziomoweZTablicy(tab_artykul,numer);
else
tab_artykul=self.tab_artykul;
s=0;
end;
local numer_pomiedzy_artykul=tonumber(frame.args[1]) or 1;
local reszta_pomiedzy_artykul=math.fmod(numer_pomiedzy_artykul,#tab_artykul-2);
local artykul=tab_artykul[reszta_pomiedzy_artykul+2];
return artykul;
end;
function p.LosowaStronaWoluminu(self,frame,numer)
local tab_artykul;local s;
if(numer>0)then
local parametry_modul=require("Module:Parametry");
tab_artykul=parametry_modul["KopiujTabelęElementów"](self.tab_artykul);
tab_artykul,s=p.UsuwanieElementowePoziomoweZTablicy(tab_artykul,numer);
else
tab_artykul=self.tab_artykul;
s=0;
end;
local numer_pomiedzy_artykul=tonumber(frame.args[1]) or 1;
local reszta_pomiedzy_artykul=math.fmod(numer_pomiedzy_artykul,#tab_artykul);
local artykul=tab_artykul[reszta_pomiedzy_artykul+1];
return artykul;
end;
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local szablonowe_modul=require("Module:Szablonowe");
local function RozwinSzablon(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
if((szablonowe_modul.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow))
or (szablonowe_modul.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow))
)then
return nil,false;
end;
local nazwa_szablonu_temp,czy_powodzenie=p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true);
if(not czy_powodzenie)then
return nil,false;
end;
nazwa_szablonu=nazwa_szablonu_temp or nazwa_szablonu;
return nazwa_szablonu,true;
end;
nazwa_szablonu=RozwinSzablon(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu;
return nazwa_szablonu;
end;
function p.TOCSilnik(frame,lista_elementow_spisu_tresci, atrybuty,bez_przypisow)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
local nazwa_strony_z_naglowkami=lista_elementow_spisu_tresci.nazwa_strony or "";
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
local czy_w_tym_szablony=mw.ustring.match(element_w_tablicy[1][1],"{{[^{}]+}}");
local adres=element_w_tablicy[1][1];
local naglowek=element_w_tablicy[1][2];
local czy_przypis=(bez_przypisow and stronicowyparser_obiekty_modul.napisy_wprowadzenia_tekstu_przypisowych[naglowek] or nil);
if(czy_w_tym_szablony)then
local specjalne_modul=require("Module:Specjalne");
adres=specjalne_modul["PrzetwórzNagłówek"](adres,true);
naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,false);
end;
adres=nazwa_strony_z_naglowkami.."#"..adres;
----
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li '..(czy_przypis and ('style="display:none;" ') or "")..'class=\"toclevel-1 tocsection-1\">'.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li '..(czy_przypis and ('style="display:none;" ') or "")..'class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li '..(czy_przypis and ('style="display:none;" ') or "")..'class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li '..(czy_przypis and ('style="display:none;" ') or "")..'class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..adres.."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..naglowek.."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local frame=frame or mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,true);
local bez_przypisow=PobierzParametr("bez przypisów");
bez_przypisow=parametry_modul.CzyTak(bez_przypisow);
local twor_listy=p.TOCSilnik(frame,lista_elementow_spisu_tresci,nil,bez_przypisow);
local toc_czy_tocramka=PobierzParametr("toc");toc_czy_tocramka=parametry_modul.CzyTak(toc_czy_tocramka);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=PobierzParametr("funkcja") or "UkrytaWikitabelowaListaMenu";
local wysokosc=PobierzParametr("wysokość");wysokosc=parametry_modul.CzyTak(wysokosc) and wysokosc or "43.75rem";
local szerokosc=PobierzParametr("szerokość");szerokosc=parametry_modul.CzyTak(szerokosc)and szerokosc or "100%";
local spis_tresci=PobierzParametr("spis treści");spis_tresci=parametry_modul.CzyTak(spis_tresci)and spis_tresci or "Spis treści";
local bez_not_overflow_x=PobierzParametr("bez pasków poziomych przewijania");bez_not_overflow_x=parametry_modul.CzyTak(bez_not_overflow_x);
local spis_artykulu=PobierzParametr("spis artykułu");spis_artykulu=parametry_modul.CzyTak(spis_artykulu);
local czy_bez_arginesu_dolnego=PobierzParametr("bez marginesu dolnego");czy_bez_arginesu_dolnego=parametry_modul.CzyTak(czy_bez_arginesu_dolnego);
local z_marginesami_ramki=PobierzParametr("z marginesami ramki");local czy_z_marginesami_ramki=parametry_modul.CzyTak(z_marginesami_ramki);
local zawartosc_z_marginesami=PobierzParametr("zawartość z marginesami");local czy_zawartosc_z_marginesami=parametry_modul.CzyTak(zawartosc_z_marginesami);
local maxwidth=PobierzParametr("max-width");
local czy_maxwidth=((maxwidth)and(maxwidth~="none"))and tonumber(mw.ustring.match(maxwidth,"^(%d+)%a+$")) or nil;
local klasa=PobierzParametr("klasa");
--twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y '..((not bez_not_overflow_x) and ("mw-not-overflow-x") or "")..'" style="'..(czy_zawartosc_z_marginesami and ("padding:"..zawartosc_z_marginesami)..";" or "")..(czy_maxwidth and ('max-width:'..maxwidth..";") or '')..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:3px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local klasa_tytulu='tytuł_spisu_treści';
local styl_tytulu='text-align:left;font-size:1em;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:8.125em;';
local styl_spisu=(czy_zawartosc_z_marginesami and ("padding:"..zawartosc_z_marginesami)..";" or "")..(czy_maxwidth and ('max-width:'..maxwidth..";") or '')..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding:0.1875em 0.3125em;;box-sizing:border-box;';
local klasa_spisu='toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y '..((not bez_not_overflow_x) and ("mw-not-overflow-x") or "");
local spis=czy_ukryte or "<ul></ul>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..z_marginesami_ramki)..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..'font-size:1em;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|styl nagłówka=background-color:white;|styl komórki=background-color:white;padding:0;|styl tytułu='..styl_tytulu..'|klasa tytułu='..klasa_tytulu..'|tytuł='..spis_tresci..'|klasa spisu='..klasa_spisu..'|styl spisu='..styl_spisu..'|spis='..spis..'|funkcja='..funkcja..'|klasa=spis_treści'..(klasa and (" "..klasa) or '')..'}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n<div style="color: #000;font-family: \'Linux Libertine\',\'Georgia\',\'Times\',serif;font-weight: normal;font-size:2.2em;border-bottom:1px solid #a2a9b1;line-height: 1.3;margin-top:1em;margin-bottom:0.25em">Spis treści</div>\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:1em;font-size:1em;line-height:1.4;">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,tab_numer,nazwa_modulu_szablonowa,tablica_danych_parametrow_szablonu_strony,__Funkcja, __Funkcja2)
if(obiekt~="SZABLON")then return;end;
--uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
--local tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modulu];
----
local szablonowe_modul=require("Module:Szablonowe");
----
local function GlownaFunkcja(wywolanie,obiekt,kod)
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(wywolanie,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
__Funkcja(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,wywolanie,obiekt,kod,tab_numer);
if(__Funkcja2)then
__Funkcja2(wywolanie,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end);
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod);
end;
function p.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(artykul,czy_naglowek)
local parametry_modul=require("Module:Parametry");
if((parametry_modul.TypeTable(artykul))and(artykul["LINK"]))then
if(not czy_naglowek)then
return artykul[1];
else
return artykul;
end;
end;
return artykul;
end;
function p.CzyTabelaStronyWoluminuSpisuRzeczy(tab_artykul)
local parametry_modul=require("Module:Parametry");
local czy_table_baza_artykulu=parametry_modul.TypeTable(tab_artykul);
if((czy_table_baza_artykulu)and(tab_artykul["LINK"]))then return false;end;
return czy_table_baza_artykulu;
end;
function p.TylkoNazwaStronyWoluminuZTabeliPublikacji(tab_artykulu,pomin_link)
local parametry_modul=require("Module:Parametry");
if((parametry_modul.TypeTable(tab_artykulu))and(pomin_link or tab_artykulu["LINK"]))then return tab_artykulu[1];end;
return tab_artykulu;
end;
function p.TylkoStronaWoluminuBezParametrowOrazReferencji(tab_artykulu)
local parametry_modul=require("Module:Parametry");
if((parametry_modul.TypeTable(tab_artykulu))and(tab_artykulu["LINK"]))then return nil;end;
return tab_artykulu;
end;
function p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_artykulu_strony,parametry,naglowek,tab_innej_przekierowania_strony)
local parametry_modul=require("Module:Parametry");
parametry=parametry_modul.CzyTak(parametry) and parametry or nil;
naglowek=parametry_modul.CzyTak(naglowek) and naglowek or nil;
return (parametry or naglowek or tab_innej_przekierowania_strony) and {nazwa_artykulu_strony,parametry,naglowek,["LINK"]=true,tab_innej_przekierowania_strony,} or nazwa_artykulu_strony;
end;
function p.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab_artykul,naglowek,pomin_link)
local parametry_modul=require("Module:Parametry");
if(parametry_modul.TypeTable(tab_artykul))then
if(pomin_link or tab_artykul["LINK"])then
local nazwa_artykulu_strony=tab_artykul[1];
if(naglowek)then
local parametry=tab_artykul[2];
local naglowek=tab_artykul[3];
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return nazwa_artykulu_strony;
end;
else
return tab_artykul;
end;
else
return tab_artykul;
end;
end;
function p.DekodowanieTekstu(nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)
return function(tekst,tryb,czy_nie_odstepy,drugi_wynik,czy_drugi_wynik_przetworzony)
if(not tekst)then return tekst;end;
local stronicowyparser_pomocne_modul=require("Module:StronicowyParser/Pomocne");
local tekst,tekst2=stronicowyparser_pomocne_modul.DekodowanieTekstuNazwLinku(tekst,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,tryb,czy_nie_odstepy,drugi_wynik,czy_drugi_wynik_przetworzony);
return tekst,tekst2;
end;
end;
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)
local obiekt=obiekt or "ARCHIW";
local szablonowe_modul=require("Module:Szablonowe");
kod=kod or szablonowe_modul.NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt);
kod=kod+1;
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
return szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod),kod;
end;
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)
----
--nazwa_modulu_szablonowa=nazwa_modulu_szablonowa or nazwa_modulu;
local szablonowe_modul=require("Module:Szablonowe");
local czy_kodowanie=mw.ustring.match(nazwa_szablonu,szablonowe_modul.NormaWzoruKodowaniaTekstu());
if(not czy_kodowanie)then return nil,true;end;
if(not czy_uwzgledniac_modyfikatory)then
local czy_modyfikatory=mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:");
if(czy_modyfikatory)then return nil,false;end;
end;
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_tekst=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_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_strona_zbiorcza=stronicowyparser_obiekty_modul.strona_zbiorcza
----
local tab_szablony_strona_start=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu;
----
local techniczne_modul=require("Module:Techniczne");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local czy_szablon_wszystko=false;
local max;
local nazwa_szablonu=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(nazwa_szablonu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,
function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul)
if(obiekt=="SZABLON")then
local wynik,jaki_wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_szablonowa,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((tab_szablony[nazwa_szablonu])
---or(tab_naglowki[nazwa_szablonu])
--or(tab_tekst[nazwa_szablonu]
or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])
or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])
or(tab_szablony_strona_zbiorcza[nazwa_szablonu])
or(tab_szablony_strona_start[nazwa_szablonu])
)then return nil,false;end;
return true,true;
end,
nil,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
for _,nazwa_modulu_lua in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_ramek_lua)do
if((nazwa_szablonu==nazwy_np_modul.Module..":"..nazwa_modulu_lua)
or(mw.ustring.match(nazwa_szablonu,'^'..nazwy_np_modul.Module..":"..techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](nazwa_modulu_lua).."/"))
)then
return nil,false;
end;
end;
return true,true;
end,nil,nil,nil,nil,nil,nil,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kodtabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return true,true;
end);
czy_szablon_wszystko=czy_szablon_wszystko or ((jaki_wynik==nil)and true or jaki_wynik);
if(not wynik)then
local kodowanie_szablonowe;
kodowanie_szablonowe,max=p.ARCHIWLubSTARE(szablon,"ARCHIW",max,tablica_analizy_obiektow_strony_dany_modul)
return kodowanie_szablonowe;
end;
elseif((obiekt=="STARE")or(obiekt=="ARCHIW"))then
return nil,true;
elseif((obiekt=="ZMIENNA")and(not czy_z_kluczem))then
local klucz=mw.ustring.match(szablon,"^%{%{%{%s*klucz(%d*)%s*%|.*%}%}%}$") or mw.ustring.match(szablon,"^%{%{%{%s*klucz(%d*)%s*%}%}%}$");
if(klucz)then
if((klucz=="")or(mw.ustring.match(klucz,"^[1-9]%d*$")))then
local kodowanie_szablonowe;
kodowanie_szablonowe,max=p.ARCHIWLubSTARE(szablon,"ARCHIW",max,tablica_analizy_obiektow_strony_dany_modul)
return kodowanie_szablonowe;
end;
end;
end;
return szablon;
end);
if(czy_szablon_wszystko)then
local frame=mw.getCurrentFrame();
nazwa_szablonu=frame:preprocess(nazwa_szablonu);
end;
return nazwa_szablonu,true;
end;
function p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_szablonowe_kolidacja=stronicowyparser_obiekty_modul.nazwy_szablonowe_kolidacja;
if(nazwy_szablonowe_kolidacja[nazwa_szablonu])then return nazwa_szablonu,false;end;
local nazwa_linku=stronicowyparser_obiekty_modul.przekierowania_szablonowe_linkowe_inteligentne_inne[nazwa_szablonu];
if(nazwa_linku)then return nazwa_linku,true;end;
local litery_przestrzeni_kolidacja=stronicowyparser_obiekty_modul.litery_przestrzeni_kolidacja;
local link,prze,ustep,dwa=mw.ustring.match(nazwa_szablonu,"^(%a)(%a)(%a?)(%d?)$");
if((link)and(link=="L"))then
if((ustep=="")or(ustep=="u"))then
prze=litery_przestrzeni_kolidacja[prze] or prze;
local przez_literowa=stronicowyparser_obiekty_modul.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne[prze];
if(przez_literowa)then
local nazwa="Link"..przez_literowa..((ustep~="")and "Ustęp" or "")..dwa;
return nazwa,true;
end;
if(ustep=="")then
if(prze=="u")then return "LinkUstęp"..dwa,true;end;
if(prze=="o")then return "LinkOgólne"..dwa,true;end;
end;
else
local projektowe_literowe=stronicowyparser_obiekty_modul.nazwy_projektowe_serwisy_linkowe_inteligentne[prze];
if(projektowe_literowe)then
ustep=litery_przestrzeni_kolidacja[ustep] or ustep;
local prze_literowa=stronicowyparser_obiekty_modul.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne[ustep];
if(prze_literowa)then
return "Link"..projektowe_literowe..prze_literowa..dwa,true;
end;
end;
end;
return nazwa_szablonu,false;
else
local link,projekt,prze,ustep,dwa=mw.ustring.match(nazwa_szablonu,"^(%a)(%a)(%a)(%a?)(%d?)$");
if((link)and(link=="L"))then
if((ustep=="")or(ustep=="u"))then
local projektowe_literowe=stronicowyparser_obiekty_modul.nazwy_projektowe_serwisy_linkowe_inteligentne[projekt];
if(projektowe_literowe)then
prze=litery_przestrzeni_kolidacja[prze] or prze;
local prze_literowa=stronicowyparser_obiekty_modul.nazwy_przestrzeni_nazw_przekierowaniowe_linkowe_inteligentne[prze];
if(prze_literowa)then
return "Link"..projektowe_literowe..prze_literowa..((ustep~="") and "Ustęp" or "")..dwa,true;
end;
end;
end;
end;
return nazwa_szablonu,false;
end;
end;
function p.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa,tablica_danych_parametrow_szablonu_strony,kod,czy_liczyc_przekierowanie)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[0];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.tablica_analizy_linku;
end;
end;
end;
nazwa=(not czy_liczyc_przekierowanie)and p.SzablonyPrzekierowanioweInteligentne(nazwa) or nazwa;
local function AnalizaSzablonowaLinku()
local nazwa,dwa=mw.ustring.match(nazwa,"^Link(%a+)(2?)$");
if(not nazwa)then return;end;
if(dwa=="")then dwa=nil;else dwa=true;end;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
----
local tab_przestrzen=stronicowyparser_obiekty_modul.kody_szablony_linkowe_przestrzenne;
local tab_jezyk=stronicowyparser_obiekty_modul.kody_szablony_linkowe_dialektu;
local tab_projektowe=stronicowyparser_obiekty_modul.kody_szablony_linkowe_projektowe;
----
local nazwa_nowa,ustep_nowa=mw.ustring.match(nazwa,"^(.+)(Ustęp)$")
nazwa=nazwa_nowa or nazwa;
local czy_ustep=ustep_nowa and true or false;
local przestrzen=mw.ustring.match(nazwa,"^(%u%l+)$");
if(przestrzen)then
local przestrzenne=tab_przestrzen[przestrzen];
if(przestrzenne)then
return {przestrzenne[1],przestrzenne[2],nil,czy_ustep,dwa,};
end;
end;
----
local jezyk,przestrzen=mw.ustring.match(nazwa,"^(%u%l+)(%u%l+)$");
if(jezyk and przestrzen)then
local jezykowe=tab_jezyk[jezyk];local przestrzenne=tab_przestrzen[przestrzen];
if(jezykowe and przestrzenne)then
return {przestrzenne[1],przestrzenne[2],jezykowe,czy_ustep,dwa,};
end;
----
local projektowe=tab_projektowe[jezyk];
if(projektowe and przestrzenne)then
return {przestrzenne[1],projektowe or przestrzenne[2],czy_ustep,nil,dwa,};
end;
end;
-----
local jezyk,projekt,przestrzen=mw.ustring.match(nazwa,"^(%u%l+)(%u%l+)(%u%l+)$");
if(jezyk and projekt and przestrzen)then
local jezykowe=tab_jezyk[jezyk];local projektowe=tab_projektowe[projekt];local przestrzenne=tab_przestrzen[przestrzen]
if(jezykowe and projektowe and przestrzenne)then
return {przestrzenne[1], projektowe or przestrzenne[2],jezykowe,czy_ustep,dwa,}
end;
local projektowe=tab_projektowe[jezyk..projekt];
if(projektowe and przestrzenne)then
return {przestrzenne[1],projektowe or przestrzenne[2],nil,czy_ustep,dwa,};
end;
end;
return nil;
end;
local wynik=AnalizaSzablonowaLinku();
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[0])then tablica_danych_parametrow_szablonu_strony[0]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[0];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.tablica_analizy_linku=wynik;
end;
return wynik;
end;
function p.NazwaInnegoSzablonowegoLinkowegoObiektu(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-7];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
--local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
--local tab_szablony_inteligentne=stronicowyparser_obiekty_modul.kody_inne_szablony_linkowe_inteligentne;
local nazwa_zamiast_linku;
nazwa_szablonu=p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu);
if(nazwa_szablonu=="Sekcja referencyjna")then
local nazwa=tabela_parametrow_szablonu["nazwa"] or tabela_parametrow_szablonu[2];
if(nazwa)then return nazwa;end;
local strona=tabela_parametrow_szablonu["strona"] or tabela_parametrow_szablonu[1];
local parametry_modul=require("Module:Parametry");
local czy_strona=parametry_modul.CzyTak(strona) and true or false;
if(not czy_strona)then
local nazwy_modul=require("Module:Nazwy");
strona=nazwy_modul["PEŁNANAZWAKSIĄŻKI"]();
end;
local ustep=tabela_parametrow_szablonu["ustęp"];
local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna");
local czy_ustep=parametry_modul.CzyTak(ustep);
if(not czy_strona)then czy_ustep=not czy_ustep;end;
nazwa_zamiast_linku=sekcja_referencyjna_modul.Indentyfikator_lub_podstrona_wikiadresu_strony(strona,czy_ustep);
elseif(nazwa_szablonu=="Link wewnętrzny")then
nazwa_zamiast_linku=tabela_parametrow_szablonu["nazwa"] or (tabela_parametrow_szablonu["strona"] or "")..(tabela_parametrow_szablonu["nagłówek"]and("#"..tabela_parametrow_szablonu["nagłówek"]) or "")
elseif(nazwa_szablonu=="LinkOgólne")then
nazwa_zamiast_linku=tabela_parametrow_szablonu[2] or tabela_parametrow_szablonu[1];
elseif(nazwa_szablonu=="SpisTreści")then
local nazwa=(tabela_parametrow_szablonu["nazwa"]
or tabela_parametrow_szablonu[3]
or tabela_parametrow_szablonu["artykuł"]
or tabela_parametrow_szablonu[1]);
if(nazwa)then
local dodatek=tabela_parametrow_szablonu["dodatek"] or tabela_parametrow_szablonu[4];
if(dodatek)then dodatek=" "..dodatek;else dodatek="";end;
nazwa_zamiast_linku=nazwa..dodatek;
end;
elseif(nazwa_szablonu=="LinkURL")then
local nazwa=tabela_parametrow_szablonu["nazwa"] or tabela_parametrow_szablonu["n"];
if(nazwa)then
nazwa_zamiast_linku=nazwa;
else
local strona=tabela_parametrow_szablonu["strona"] or tabela_parametrow_szablonu["s"];
nazwa_zamiast_linku=strona;
end;
end;
if((nazwa_zamiast_linku)and(nazwa_zamiast_linku~=""))then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[-7])then tablica_danych_parametrow_szablonu_strony[-7]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-7];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=nazwa_zamiast_linku;
end;
end;
return nazwa_zamiast_linku;
end;
function p.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-8];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy;
end;
end;
end;
nazwa_szablonu=p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu);
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
local tab_spis=inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
if(tab_spis)then
local czy_true=tab_spis[1];
local parametr;local numer;
if(czy_true)then
parametr=tabela_parametrow_szablonu[tab_spis.numer_link];
else
parametr=tabela_parametrow_szablonu[tab_spis.link];
local numer=tabela_parametrow_szablonu[tab_spis.numer];
parametr=(parametr and numer)and (numer.." "..parametr) or (parametr);
end;
if((parametr)and(parametr~=""))then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[-8])then tablica_danych_parametrow_szablonu_strony[-8]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-8];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
tablica_danych_parametrow_szablonu_strony_numer_kod.szereg_znakowy=parametr;
end;
end;
return parametr;
end;
return nil;
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA)
local numer;
if((obiekt)and(kod))then
if(obiekt=="SZABLON")then
numer=-2;
elseif(obiekt=="LINKW")then
numer=-3;
elseif(obiekt=="LINKZ")then
numer=-4;
end;
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[numer];
if(tablica_danych_parametrow_szablonu_strony_numer)then
local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod];
if(tablica_danych_parametrow_szablonu_strony_numer_kod)then
return tablica_danych_parametrow_szablonu_strony_numer_kod[1],tablica_danych_parametrow_szablonu_strony_numer_kod[2],tablica_danych_parametrow_szablonu_strony_numer_kod[3],tablica_danych_parametrow_szablonu_strony_numer_kod[4],tablica_danych_parametrow_szablonu_strony_numer_kod[5];
end;
end;
end;
end;
local local1,local2,local3,local4,local5=p.AnalizujLinkSzablonyOrazLinki2(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA);
if((obiekt)and(kod))then
if((tablica_danych_parametrow_szablonu_strony)and(kod))then
if(not tablica_danych_parametrow_szablonu_strony[numer])then tablica_danych_parametrow_szablonu_strony[numer]={};end;
local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[numer];
if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end;
tablica_danych_parametrow_szablonu_strony_numer[kod]={local1,local2,local3,local4,local5,};
end;
end;
return local1,local2,local3,local4,local5;
end;
function p.AnalizujLinkSzablonyOrazLinki2(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA)
----
local DekodowanieTekstu=p.DekodowanieTekstu(nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci);
----
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local pozycja_artykulu=nil;local nazwa=nil;
local czy_tabela_do_parsowania_artykulu=parametry_modul.TypeTable(wyzyskane_wywolanie_szablonu_spis_tresci);
if(not czy_tabela_do_parsowania_artykulu)then
pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^|%[%]]+)|(.+)%]%]$");
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^|%[%]]+)%]%]$");
end;
end;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy")
local techniczne_modul=require("Module:Techniczne");
local pelna_nazwa_spisu_tresci_analizowana=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci);
local function Artykul(strona,parametry--[[_ref]],naglowek--[[_ref]])
----
--local parametry=parametry_modul.CzyTak(parametry_ref) and parametry_ref or html_modul["ParametryStronyAdresu"](strona,true);
--local naglowek=parametry_modul.CzyTak(naglowek_ref) and naglowek_ref or html_modul["NagłówekStronyAdresu"](strona,true);
----
strona=html_modul["NazwaStronyAdresu"](strona,true);
strona=parametry_modul["Odstępy"]{[1]=strona,[2]="tak",};
local techniczne_modul=require("Module:Techniczne");
strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=pelna_nazwa_spisu_tresci_analizowana,};
----
local tabela_nazw_strona={};
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw_strona);
local nazwa_przestrzeni_ksiazki_strony=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw_strona);
local nazwa_ksiazki_strony=(nazwa_przestrzeni_ksiazki_strony~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw_strona) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw_strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw_strona);
--if((tab_nazwa_spisow_przekierowaniowych)and(tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony])and
--[[else]]
if(tab_nazwa_spisow_przekierowaniowych)then
local techniczne_modul=require("Module:Techniczne");
local strona_przekierowania=techniczne_modul.PrzekierowanieDoStrony(strona);
local function DaneRozwazone(strona_przekierowania,inna_ksiazka,czy_przekierowanie)
local tabela_nazw_przekierowanie={};
----
local nazwa_przestrzeni_strony_przekierowania=nazwy_modul["NAZWAPRZESTRZENI"](strona_przekierowania,tabela_nazw_przekierowanie);
local nazwa_przestrzeni_ksiazki_strony_przekierowania=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie);
local nazwa_ksiazki_strony_przekierowania=(nazwa_przestrzeni_ksiazki_strony~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie) or nazwy_modul["NAZWAKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie);
local nazwa_artykulu_strony_przekierowania=((not inna_ksiazka) and (nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_przekierowania,tabela_nazw_przekierowanie)) or (nazwa_artykulu_strony));
----
local tabela_nazw_adresu_przekierowania={};
local parametry_przekierowania=((not inna_ksiazka) and (html_modul["ParametryStronyAdresu"](strona_przekierowania,true,tabela_nazw_adresu_przekierowania)) or nil);
local naglowek_przekierowania=((not inna_ksiazka) and (html_modul["NagłówekStronyAdresu"](strona_przekierowania,true,tabela_nazw_adresu_przekierowania)) or nil);
----
if((nazwa_przestrzeni_strony_przekierowania==nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki_strony_przekierowania==nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki_strony_przekierowania==nazwa_ksiazki))then
local czy_inne_ksiazka=((inna_ksiazka)or(((nazwa_przestrzeni_strony~=nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki_strony~=nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki_strony~=nazwa_ksiazki))));
if(czy_inne_ksiazka)then
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony])then
tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony]={};
end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony])then
tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony]={};
end;
if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony][nazwa_ksiazki_strony])then
tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony][nazwa_ksiazki_strony]=true;
end;
end;
return {nazwa_artykulu_strony_przekierowania,parametry_modul.CzyTak(parametry_przekierowania) and parametry_przekierowania or nil,parametry_modul.CzyTak(naglowek_przekierowania) and naglowek_przekierowania or nil,{czy_inne_ksiazka and {nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,inna_ksiazka,true,czy_przekierowanie,} or nil,czy_przekierowanie and nazwa_artykulu_strony or nil,czy_przekierowanie and parametry or nil,czy_przekierowanie and naglowek or nil,} or nil,};
else
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki_strony==nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return {nazwa_artykulu_strony,parametry_modul.CzyTak(parametry) and parametry or nil,parametry_modul.CzyTak(naglowek) and naglowek or nil,{{nazwa_przestrzeni_strony_przekierowania,nazwa_przestrzeni_ksiazki_strony_przekierowania,nazwa_ksiazki_strony_przekierowania,true,false,czy_przekierowanie,},nazwa_artykulu_strony_przekierowania,parametry_przekierowania,naglowek_przekierowania,} or nil,};
else
return nil,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony;
end;
end;
end;
if(strona_przekierowania)then
return DaneRozwazone(strona_przekierowania,nil,true);
else
if((tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony])
and(tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony])and(tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni_strony][nazwa_przestrzeni_ksiazki_strony][nazwa_ksiazki_strony]))then
return {nazwa_artykulu_strony,parametry_modul.CzyTak(parametry) and parametry or nil,parametry_modul.CzyTak(naglowek) and naglowek or nil,{{nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,true,true,false,},nil,nil,nil,},};
end;
local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,"");
local strona_przekierowania=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_ksiazki);
if(strona_przekierowania)then
return DaneRozwazone(strona_przekierowania,true,false);
end;
end;
end;
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki_strony==nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return {nazwa_artykulu_strony,parametry,naglowek,};
end
return nil,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony;
end;
---
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local function DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,parametry_ref,naglowek_ref,nazwa,czy_link,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
if(not mw.ustring.match(pozycja_artykulu,"[{}%[%]|]"))then
if((czy_nie_dwukropek)and(((not kod_jezyka)and(not kod_projektu)and(not klucz_projektu))or (parametry_modul.CzyTak(klucz_projektu)and((klucz_projektu==kod_jezyka_tego_projektu)or(klucz_projektu==kod_projektu_tego_projektu)or(klucz_projektu==kod_jezyka_tego_projektu..":"..kod_projektu_tego_projektu)or(klucz_projektu==kod_projektu_tego_projektu..":"..kod_jezyka_tego_projektu))) or(((kod_jezyka)and(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu)and(kod_projektu==kod_projektu_tego_projektu))) or ((kod_jezyka)and(not kod_projektu)and(kod_jezyka==kod_jezyka_tego_projektu))or((kod_projektu)and(not kod_jezyka)and(kod_projektu==kod_projektu_tego_projektu))))then
----
pozycja_artykulu=DekodowanieTekstu(pozycja_artykulu,2,nil);
parametry_ref=DekodowanieTekstu(parametry_ref,2,nil);
naglowek_ref=DekodowanieTekstu(naglowek_ref,2,nil);
----
local czy_link=czy_link or mw.ustring.match(pozycja_artykulu,"^:");
local tabela_nazw_adresu_artykulu={};
parametry_ref=parametry_modul.CzyTak(parametry_ref) and parametry_ref or html_modul["ParametryStronyAdresu"](pozycja_artykulu,true,tabela_nazw_adresu_artykulu);
naglowek_ref=parametry_modul.CzyTak(naglowek_ref) and naglowek_ref or html_modul["NagłówekStronyAdresu"](pozycja_artykulu,true,tabela_nazw_adresu_artykulu);
pozycja_artykulu=html_modul["NazwaStronyAdresu"](pozycja_artykulu,true,tabela_nazw_adresu_artykulu);
----
local czy_pozycja_artykulu=pozycja_artykulu;
local pozycja_artykulu,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony=Artykul(pozycja_artykulu,parametry_ref,naglowek_ref);
if(pozycja_artykulu)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(pozycja_artykulu[1],pozycja_artykulu[2],pozycja_artykulu[3],pozycja_artykulu[4]),nazwa,nil,nil,},1,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
local nazwy_modul=require("Module:Nazwy");
--local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=czy_pozycja_artykulu,};
strona=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni_strony==nazwy_np_modul.Main)
or(nazwa_przestrzeni_strony==nazwy_np_modul.Wikijunior)
or(nazwa_przestrzeni_strony==nazwy_np_modul.Wikibooks)
or(nazwa_przestrzeni_strony==nazwy_np_modul.User)
)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(strona,parametry_ref,naglowek_ref,nil),nazwa,nil,nil,},2,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
elseif(
czy_link
or parametry_modul.CzyTak(klucz_projektu)
or parametry_modul.CzyTak(kod_jezyka)
or parametry_modul.CzyTak(kod_projektu)
or ((nazwa_przestrzeni_strony~=nazwy_np_modul.Category)and(nazwa_przestrzeni_strony~=nazwy_np_modul.File))
)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(strona,parametry_ref,naglowek_ref,nil),nazwa,nil,nil,},3,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
end;
else
local pozycja_artykulu_stara=pozycja_artykulu;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka=kod_jezyka or pudelko_modul["Kod języka tego projektu"]();
local kod_projektu=kod_projektu or pudelko_modul["Kod projektu tego projektu"]();
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
pozycja_artykulu=DekodowanieTekstu(pozycja_artykulu,2,nil);
local czy_link=czy_link or mw.ustring.match(pozycja_artykulu,"^:");
local nazwa_strony_linku;
local uzyskana_nazwa_strony_linku;
if(czy_nie_dwukropek)then
nazwa_strony_linku=pozycja_artykulu;
else
local kod_jezyka_poczatkowy, kod_projektu_poczatkowy;
nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy);
uzyskana_nazwa_strony_linku=nazwa_strony_linku;
end;
----
parametry_ref=DekodowanieTekstu(parametry_ref,2,nil);
naglowek_ref=DekodowanieTekstu(naglowek_ref,2,nil);
----
local html_modul=require("Module:Html");
local tabela_nazw_adresu={};
local parametry_strony=parametry_modul.CzyTak(parametry_ref) and parametry_ref or html_modul["ParametryStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu);
local naglowek_strony=parametry_modul.CzyTak(naglowek_ref) and naglowek_ref or html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu);
nazwa_strony_linku=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true,tabela_nazw_adresu);
local nazwy_modul=require("Module:Nazwy");
----
local tabela_nazw_artykul={};
local nazwa_przestrzeni=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa_strony_linku,['kod języka']=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw_artykul);
local nazwa_kanoniczna_przestrzeni;
local biezaca_wiki;
if(tabela_nazw_artykul.czy_aktualna_wiki==nil)then
biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
else
biezaca_wiki=tabela_nazw_artykul.czy_aktualna_wiki;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(biezaca_wiki)then
local czy_wyswietlic_link=((uzyskana_nazwa_strony_linku)and(uzyskana_nazwa_strony_linku~=pozycja_artykulu))and true or false;
if(nazwa_przestrzeni)then
if((nazwa_przestrzeni==nazwy_np_modul.Main)
or(nazwa_przestrzeni==nazwy_np_modul.Wikijunior)
or(nazwa_przestrzeni==nazwy_np_modul.Wikibooks)
or(nazwa_przestrzeni==nazwy_np_modul.User)
)then
local pozycja_artykulu,strona,nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony=Artykul(nazwa_strony_linku);
if(pozycja_artykulu)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(pozycja_artykulu[1],pozycja_artykulu[2] or parametry_strony,pozycja_artykulu[3] or naglowek_strony,pozycja_artykulu[4]),nazwa,czy_wyswietlic_link and kod_jezyka_koncowy or nil,czy_wyswietlic_link and kod_projektu_koncowy or nil,czy_wyswietlic_link and pozycja_artykulu_stara or nil,},1,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
nazwa_strony_linku=nazwy_modul["NazwaModułu"](nazwa_przestrzeni_strony,nazwa_przestrzeni_ksiazki_strony,nazwa_ksiazki_strony,nazwa_artykulu_strony);
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,czy_wyswietlic_link and kod_jezyka_koncowy or nil,czy_wyswietlic_link and kod_projektu_koncowy or nil,czy_wyswietlic_link and pozycja_artykulu_stara or nil,},2,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
elseif(
czy_link
or (nazwa_strony_linku~=pozycja_artykulu)
or ((nazwa_przestrzeni~=nazwy_np_modul.Category)and(nazwa_przestrzeni~=nazwy_np_modul.File))
)then
nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=nazwa_strony_linku,['kod języka']=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw_artykul)
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,czy_wyswietlic_link and kod_jezyka_koncowy or nil,czy_wyswietlic_link and kod_projektu_koncowy or nil,czy_wyswietlic_link and pozycja_artykulu_stara or nil,},3,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=nazwa_strony_linku,['kod języka']=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,},tabela_nazw_artykul);
nazwa_kanoniczna_przestrzeni=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_kanoniczna_przestrzeni)then
if((nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.Main)
or(nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.Wikijunior)
or(nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.Project)
or(nazwa_kanoniczna_przestrzeni==nazwy_np_modul.kanoniczna.User)
)then
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,pozycja_artykulu_stara,},4,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony_linku,parametry_strony,naglowek_strony),nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,pozycja_artykulu_stara,},5,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
end;
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
end;
---
local czy_pozycja_artykulu=nil;
if((not pozycja_artykulu)and(not czy_tabela_do_parsowania_artykulu))then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^({{[^{}]+}})$");
if(link_szablon)then
local szablonowe_modul=require("Module:Szablonowe");
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(link_szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
nazwa_szablonu=p.SzablonyPrzekierowanioweInteligentne(nazwa_szablonu);
if(nazwa_szablonu=="SpisTreści")then
local tabela_nazw_spis_rzeczy={};
pozycja_artykulu=p.SpisRzeczySzablon(nazwa_szablonu,1,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if(not pozycja_artykulu)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
------
local nazwa_ksiazki=p.SpisRzeczySzablon(nazwa_szablonu,2,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if(not nazwa_ksiazki)then
pozycja_artykulu=DekodowanieTekstu(pozycja_artykulu,2,nil);
local nazwa=p.SpisRzeczySzablon(nazwa_szablonu,3,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
local dodatek=p.SpisRzeczySzablon(nazwa_szablonu,4,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if((nazwa)or(dodatek))then
local nazwa=(nazwa or pozycja_artykulu)..((dodatek) and (" "..dodatek) or "");
------
return {pozycja_artykulu,nazwa,},1,true,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
else
return {pozycja_artykulu,nil,},1,true,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
else
local adres=nazwa_spisu_tresci..((pozycja_artykulu~="")and ("/"..pozycja_artykulu)or "");
adres=p.DekodowanieNazwySzablonu(adres,nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or adres;
local nazwa=p.SpisRzeczySzablon(nazwa_szablonu,3,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
local datatek=p.SpisRzeczySzablon(nazwa_szablonu,4,tabela_parametrow_szablonu,tabela_nazw_spis_rzeczy);
if((nazwa)or(dodatek))then
nazwa=(nazwa or pozycja_artykulu)..((dodatek) and (" "..dodatek) or "");
end;
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(adres);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(adres,nil,nil,nazwa,true,czy_nie_dwukropek,nil,nil,nil,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
end;
elseif(nazwa_szablonu=="Sekcja referencyjna")then
local tabela_nazw_sekcja_referencyjna={};
local strona=p.SpisRzeczySzablon(nazwa_szablonu,1,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local podstrona=p.SpisRzeczySzablon(nazwa_szablonu,3,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
-----
local strona_wolumin;
local nazwa=p.SpisRzeczySzablon(nazwa_szablonu,2,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
if(strona)then
strona,strona_wolumin=DekodowanieTekstu(strona,nazwa and 2 or 3,nil,(not nazwa) and true or nil);
end;
podstrona=podstrona and DekodowanieTekstu(podstrona,2,nil) or podstrona;
----
local ustep=p.SpisRzeczySzablon(nazwa_szablonu,4,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local od_malej=p.SpisRzeczySzablon(nazwa_szablonu,5,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local od_duzej=p.SpisRzeczySzablon(nazwa_szablonu,6,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
----
local nazwa_przestrzeni_nazw=p.SpisRzeczySzablon(nazwa_szablonu,7,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
local nazwa_jednostki=p.SpisRzeczySzablon(nazwa_szablonu,8,tabela_parametrow_szablonu,tabela_nazw_sekcja_referencyjna,true);
----
local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna");
----
if((not nazwa_przestrzeni_nazw)and(not nazwa_jednostki))then
----
local strona_artykulu,nazwa_artykulu=sekcja_referencyjna_modul.Wolumin(strona,podstrona,nazwa,ustep,od_malej,od_duzej,nil,true,strona_wolumin);
----
local html_modul=require("Module:Html");
local tabela_nazw_adresu={};
local parametry_ref=html_modul["ParametryStronyAdresu"](strona_artykulu,true,tabela_nazw_adresu);
local naglowek_ref=html_modul["NagłówekStronyAdresu"](strona_artykulu,true,tabela_nazw_adresu);
----
local strona_ref=html_modul["NazwaStronyAdresu"](strona_artykulu,true,tabela_nazw_adresu);
-----
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(strona_ref,parametry_ref,naglowek_ref),nazwa_artykulu,},1,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false,(((strona)and(not nazwa)) and true or nil);
else
local pudelko_modul=require("Module:Pudełko");
local pelna_nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki"](
{
args={
["nazwa przestrzeni nazw"]=nazwa_przestrzeni_nazw,
["nazwa jednostki"]=nazwa_jednostki,
}
},0);
local strona_artykulu,nazwa_artykulu=sekcja_referencyjna_modul.Wolumin(strona,podstrona,nazwa,ustep,od_malej,od_duzej,pelnanazwajednostki,nil,strona_wolumin);
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(strona_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(strona_artykulu,nil,nil,nazwa_artykulu,true,czy_nie_dwukropek,nil,nil,nil,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow),(((strona)and(not nazwa)) and true or nil);
end;
elseif(nazwa_szablonu=="Link wewnętrzny")then
local pozycja_artykulu=tabela_parametrow_szablonu["strona"];
if(not pozycja_artykulu)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
local nazwa=tabela_parametrow_szablonu["nazwa"];
local naglowek=tabela_parametrow_szablonu["nagłówek"];
local klucz_projektu=tabela_parametrow_szablonu["klucz projektu"];
local kod_jezyka=tabela_parametrow_szablonu['kod języka'];
local kod_projektu=tabela_parametrow_szablonu["kod projektu"];
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,naglowek,nazwa,true,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
else
local nazwa_szablonu_nowa,dwa=mw.ustring.match(nazwa_szablonu,"^(LinkOgólne)(2?)$");
if(nazwa_szablonu_nowa)then
local pozycja_artykul;
local strona=tabela_parametrow_szablonu[1];
if(not strona)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
local czy_dwa=(dwa~="")and true or false;
local nazwa=(not czy_dwa) and tabela_parametrow_szablonu[2] or nil;
local klucz_projektu=tabela_parametrow_szablonu["klucz projektu"] or tabela_parametrow_szablonu["k"];
local kod_jezyka=tabela_parametrow_szablonu['kod języka'] or tabela_parametrow_szablonu["kj"];
local kod_projektu=tabela_parametrow_szablonu["kod projektu"] or tabela_parametrow_szablonu["kp"];
local miano_przestrzeni_nazw=tabela_parametrow_szablonu["miano przestrzeni nazw"]
or tabela_parametrow_szablonu["przestrzeń"]
or tabela_parametrow_szablonu["f"];
if(miano_przestrzeni_nazw)then
pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..strona;
else
pozycja_artykulu=strona;
end;
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,true,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
else
local dane_szablonu_linku=p.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod,true);
if(dane_szablonu_linku)then
local pozycja_artykulu=tabela_parametrow_szablonu[1];
if(not pozycja_artykulu)then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},false;
end;
local nazwa_przestrzeni=dane_szablonu_linku[1];
local pozycja_artykulu=(((nazwa_przestrzeni)and(nazwa_przestrzeni~=""))and (nazwa_przestrzeni..":") or "")..tabela_parametrow_szablonu[1];
local nazwa=((not dane_szablonu_linku[4])and(not dane_szablonu_linku[5])) and (tabela_parametrow_szablonu[2]) or nil;
local klucz_projektu;local kod_jezyka;local kod_projektu;
if((not dane_szablonu_linku[2])and(not dane_szablonu_linku[3]))then
klucz_projektu=tabela_parametrow_szablonu["klucz projektu"] or tabela_parametrow_szablonu["k"];
kod_jezyka=tabela_parametrow_szablonu['kod języka'] or tabela_parametrow_szablonu["kj"];
kod_projektu=tabela_parametrow_szablonu["kod projektu"] or tabela_parametrow_szablonu["kp"];
else
kod_jezyka=dane_szablonu_linku[3];
kod_projektu=dane_szablonu_linku[2];
end;
local czy_nie_dwukropek;
if(nazwa_przestrzeni=="")then
czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
elseif((not kod_jezyka)and(not kod_projektu)and(not klucz_projektu))then
czy_nie_dwukropek=true;
else
czy_nie_dwukropek=false;
end;
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,true,czy_nie_dwukropek,klucz_projektu,kod_jezyka,kod_projektu,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow);
elseif((__FUNKCJA)and(__FUNKCJA(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod)))then
return nil,nil,false,{tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,},true;
end;
end;
end;
end);
else
local nazwa_strony=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[(%S+)%s*%]$");
if(nazwa_strony)then
nazwa_strony=html_modul.DecodeHtml(nazwa_strony,true);
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony,nil,nil),nil,nil,nil, nazwa_strony,"url",},6,false,nil,false;
else
local nazwa_strony,nazwa_linku=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[(%S+)%s+([^%[%]]-)%s*%]$");
if((nazwa_strony)and(nazwa_linku))then
nazwa_strony=html_modul.DecodeHtml(nazwa_strony,true);
return {p.UzyskanieTabeliStronyWoluminuParametremOrazIdentyfikatorem(nazwa_strony,nil,nil),nazwa_linku,nil,nil, nazwa_strony,"url",},6,false,nil,false;
end;
end;
end;
elseif(not czy_tabela_do_parsowania_artykulu)then
local specjalne_modul=require("Module:Specjalne");
if(specjalne_modul.CzyInterwiki(wyzyskane_wywolanie_szablonu_spis_tresci))then
return nil,nil,false,nil,true;
end;
local parametry_modul=require("Module:Parametry");
--pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
czy_pozycja_artykulu=pelna_nazwa_spisu_tresci_analizowana.."/"..czy_pozycja_artykulu;
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(czy_pozycja_artykulu,nil,nil,nazwa,true,true,nil,nil,nil,nil);
else
pozycja_artykulu=nil;
return {pozycja_artykulu,nazwa},1,false,nil,false;
end;
else
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,false,czy_nie_dwukropek,nil,nil,nil,nil);
end;
else
local pozycja_artykulu=wyzyskane_wywolanie_szablonu_spis_tresci[1];
local nazwa=wyzyskane_wywolanie_szablonu_spis_tresci[2];
local czy_nie_dwukropek=wiki_modul.CzyNieMaDwukropkaWNazwieStrony(pozycja_artykulu);
return DaneKsiazkowychProjektowychMiedzyProjektowychArtykulu(pozycja_artykulu,nil,nil,nazwa,true,czy_nie_dwukropek,nil,nil,nil,nil);
end;
end;
return p;
sg8jyjk0azm1amrf81qmltjvsftp7ks
Wikibooks:Moduły/Nazwy/Tom I
4
62922
560296
556222
2026-10-29T12:35:20Z
Persino
2851
560296
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.
=== {{Śródtytuł|m.Np}}{{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{{dk}} {{nobold|{{Code|{{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}}.
=== {{Śródtytuł|m.NpDane}}{{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}} ==
=== {{Śródtytuł|m.NAZWASERWISU}}{{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}}.|komórka4=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.|komórka1=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>
feaxfufvg22jglsrpu4yxj0v5en1mkf
Wikibooks:Moduły/Nazwy/Tom II
4
63006
560297
555667
2026-10-29T12:42:20Z
Persino
2851
560297
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¶metr_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¶metr_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) ==
=== {{Śródtytuł|m.NAZWAPRZESTRZENI}}{{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}}}}
=== {{Śródtytuł|m["PRZEDMIOTOWAPRZESTRZEŃ"]}}{{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}}}}
=== {{Śródtytuł|m["PRZESTRZEŃDYSKUSJI"]}}{{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 ==
=== {{Śródtytuł|m.NAZWASTRONY}}{{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 ==
=== {{Śródtytuł|m.BAZOWANAZWASTRONY}}{{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 ===
==== {{Śródtytuł|m.PRZEDMIOTOWABAZOWANAZWASTRONY}}{{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}}}}
==== {{Śródtytuł|m.PRZEDMIOTOWANAZWASTRONY}}{{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 ===
=== {{Śródtytuł|m.NAZWASTRONYDYSKUSJI}}{{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}}}}
=== {{Śródtytuł|m.BAZOWANAZWASTRONYDYSKUSJI}}{{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>
bwff81dw7oeyhqhbudcy6jn23we4l4r
Wikibooks:Moduły/Nazwy/Tom IV
4
63007
560299
542828
2026-10-29T12:54:26Z
Persino
2851
560299
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 książkowe ==
=== Funkcje nazw książki ===
==== {{Śródtytuł|m["NAZWAKSIĄŻKI"]}}{{Code|m["NAZWAKSIĄŻKI"]}} ====
===== Odpowiednik szablonowy =====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWAKSIĄŻKI}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
===== Funkcja biblioteczna =====
Jest to adres książki, do której należy podany artykuł, jako jego element, bez przestrzeni nazw, ale z przestrzenią nazw książki, która dla przestrzeni: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, jest pustym ciągiem, a dla niby-przestrzeni nazw: {{lr2|Brudnopis}}, przestrzenią nazw książki jest: {{Code|{{lr|Brudnopis/użytkownik}}}}, a dla przestrzeni: {{Np|User|link=tak}}, przestrzenią jego jest: {{Code|{{lż|użytkownik}}}}, gdzie zamiast nazwy {{Code|użytkownik}} należy wstawić nazwę użytkownika. Podobnie jest dla niby-przestrzeni: {{ls2|Brudnopis}} i {{ld2|Brudnopis}}. Dla innych przestrzeni jest jak dla przestrzeni {{Np|Wikijunior|link=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
-- Tytuły stron książek
local strona_1 = "Książka/artykuł";
local strona_2 = "Wikijunior:Książka/artykuł";
local strona_3 = "Wikibooks:Brudnopis/Użytkownik/Książka/artykuł";
local strona_4 = "Szablon:Brudnopis/Użytkownik/Książka/artykuł";
local strona_5 = "Moduł:Brudnopis/Użytkownik/Książka/artykuł";
-- Tabele nazw
local tabela_nazw_1={};
local tabela_nazw_2={};
local tabela_nazw_3={};
local tabela_nazw_4={};
local tabela_nazw_5={};
-- Nazwy książek bez przestrzeni nazw
---- Zwraca wynik: "Książka":
local nazwa_ksiazki_1=nazwy_modul["NAZWAKSIĄŻKI"](strona_1,tabela_nazw_1);
---- Zwraca wynik: "Książka":
local nazwa_ksiazki_2=nazwy_modul["NAZWAKSIĄŻKI"](strona_2,tabela_nazw_2);
---- Zwraca wynik: "Brudnopis/Użytkownik/Książka:
local nazwa_ksiazki_3=nazwy_modul["NAZWAKSIĄŻKI"](strona_3,tabela_nazw_3);
---- Zwraca wynik: "Brudnopis/Użytkownik/Książka":
local nazwa_ksiazki_4=nazwy_modul["NAZWAKSIĄŻKI"](strona_4,tabela_nazw_4);
---- Zwraca wynik: "Brudnopis/Użytkownik/Książka":
local nazwa_ksiazki_5=nazwy_modul["NAZWAKSIĄŻKI"](strona_5,tabela_nazw_5);
</syntaxhighlight>
====== Przykłady użycia ======
Przykłady zastosowań szablonu {{s|NAZWAKSIĄŻKI}}:
* {{Code|{{s|NAZWAKSIĄŻKI|Książka/artykuł}}}} → {{Tt|{{NAZWAKSIĄŻKI|Książka/artykuł}}}}
* {{Code|{{s|NAZWAKSIĄŻKI|Wikijunior:Książka/artykuł}}}} → {{Tt|{{NAZWAKSIĄŻKI|Wikijunior:Książka/artykuł}}}}
* {{Code|{{s|NAZWAKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|NAZWAKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|NAZWAKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}}
==== {{Śródtytuł|m["PEŁNANAZWAKSIĄŻKI"]}}{{Code|m["PEŁNANAZWAKSIĄŻKI"]}} ====
===== Odpowiednik szablonowy =====
Odpowiednik szablonowy jest pod nazwą {{s|PEŁNANAZWAKSIĄŻKI}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
===== Funkcja biblioteczna =====
Jest to adres książki, do której należy podany artykuł, jako jego element, z przestrzenią nazw, ale z przestrzenią nazw książki, która dla przestrzeni: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, jest pustym ciągiem, a z tą przestrznia nazw {{Code|Wikibooks'a}}, jedynie dla tej drugiej jest ciągiem niepustym, a dla niby-przestrzeni nazw: {{lr2|Brudnopis}}, przestrzenią nazw książki, z przestrzeniami projektu, jest: {{Code|{{lr2|Brudnopis/użytkownik}}}} (gdzie przestrzenią książki jest: {{Code|{{lr|Brudnopis/użytkownik}}}}), a dla przestrzeni: {{Np|User|link=tak}}, przestrzenią jego jest: {{Code|{{lż2|użytkownik}}}} (gdzie przestrzenią książki jest: {{Code|{{lż|użytkownik}}}}), gdzie zamiast nazwy {{Code|użytkownik}} należy wstawić nazwę użytkownika. Podobnie jest dla niby-przestrzeni: {{ls2|Brudnopis}} i {{ld2|Brudnopis}}. Dla innych przestrzeni jest jak dla przestrzeni {{Np|Wikijunior|link=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
-- Tytuły stron książek
local strona_1 = "Książka/artykuł";
local strona_2 = "Wikijunior:Książka/artykuł";
local strona_3 = "Wikibooks:Brudnopis/Użytkownik/Książka/artykuł";
local strona_4 = "Szablon:Brudnopis/Użytkownik/Książka/artykuł";
local strona_5 = "Moduł:Brudnopis/Użytkownik/Książka/artykuł";
-- Tabele nazw
local tabela_nazw_1={};
local tabela_nazw_2={};
local tabela_nazw_3={};
local tabela_nazw_4={};
local tabela_nazw_5={};
-- Nazwy książek bez przestrzeni nazw
---- Zwraca wynik: "Książka":
local pelna_nazwa_ksiazki_1=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona_1,tabela_nazw_1);
---- Zwraca wynik: "Wikijunior:Książka":
local pelna_nazwa_ksiazki_2=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona_2,tabela_nazw_2);
---- Zwraca wynik: "Wikibooks:Brudnopis/Użytkownik/Książka":
local pelna_nazwa_ksiazki_3=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona_3,tabela_nazw_3);
---- Zwraca wynik: "Szablon:Brudnopis/Użytkownik/Książka":
local pelna_nazwa_ksiazki_4=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona_4,tabela_nazw_4);
---- Zwraca wynik: "Moduł:Brudnopis/Użytkownik/Książka":
local pelna_nazwa_ksiazki_5=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona_5,tabela_nazw_5);
</syntaxhighlight>
====== Przykłady użycia ======
Przykłady zastosowań szablonu {{s|PEŁNANAZWAKSIĄŻKI}}:
* {{Code|{{s|PEŁNANAZWAKSIĄŻKI|Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAKSIĄŻKI|Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAKSIĄŻKI|Wikijunior:Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAKSIĄŻKI|Wikijunior:Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}}
=== Funkcje nazw artykułów ===
==== {{Śródtytuł|m["NAZWAARTYKUŁUKSIĄŻKI"]}}{{Code|m["NAZWAARTYKUŁUKSIĄŻKI"]}} ====
===== Odpowiednik szablonowy =====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWAARTYKUŁUKSIĄŻKI}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
===== Funkcja biblioteczna =====
Szablon wyodrębnia z pełnej nazwy artykułu jako nazwy strony jedynie jako podstrony książki przyporządkowanej jej. Jeżeli artykułem jest strona główna książki, to nazwa artykułu jest ciąg pusty o wartości: "".
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
-- Tytuły stron książek
local strona_1 = "Książka/artykuł";
local strona_2 = "Wikijunior:Książka/artykuł";
local strona_3 = "Wikibooks:Brudnopis/Użytkownik/Książka/artykuł";
local strona_4 = "Szablon:Brudnopis/Użytkownik/Książka/artykuł";
local strona_5 = "Moduł:Brudnopis/Użytkownik/Książka/artykuł";
local strona_6 = "Książka";
local strona_7 = "Wikijunior:Książka";
local strona_8 = "Wikibooks:Brudnopis/Użytkownik/Książka";
local strona_9 = "Szablon:Brudnopis/Użytkownik/Książka";
local strona_10 = "Moduł:Brudnopis/Użytkownik/Książka";
-- Tabele nazw
local tabela_nazw_1={};
local tabela_nazw_2={};
local tabela_nazw_3={};
local tabela_nazw_4={};
local tabela_nazw_5={};
local tabela_nazw_6={};
local tabela_nazw_7={};
local tabela_nazw_8={};
local tabela_nazw_9={};
local tabela_nazw_10={};
-- Nazwy książek bez przestrzeni nazw
---- Zwraca wynik: "artykuł":
local nazwa_artykulu_ksiazki_1=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_1,tabela_nazw_1);
---- Zwraca wynik: "artykuł":
local nazwa_artykulu_ksiazki_2=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_2,tabela_nazw_2);
---- Zwraca wynik: "artykuł":
local nazwa_artykulu_ksiazki_3=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_3,tabela_nazw_3);
---- Zwraca wynik: "artykuł":
local nazwa_artykulu_ksiazki_4=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_4,tabela_nazw_4);
---- Zwraca wynik: "artykuł":
local nazwa_artykulu_ksiazki_5=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_5,tabela_nazw_5);
---- Zwraca wynik: "":
local nazwa_artykulu_ksiazki_6=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_6,tabela_nazw_6);
---- Zwraca wynik: "":
local nazwa_artykulu_ksiazki_7=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_7,tabela_nazw_7);
---- Zwraca wynik: "":
local nazwa_artykulu_ksiazki_8=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_8,tabela_nazw_8);
---- Zwraca wynik: "":
local nazwa_artykulu_ksiazki_9=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_9,tabela_nazw_9);
---- Zwraca wynik: "":
local nazwa_artykulu_ksiazki_10=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona_10,tabela_nazw_10);
</syntaxhighlight>
====== Przykłady użycia ======
Przykłady zastosowań szablonu {{s|NAZWAARTYKUŁUKSIĄŻKI}}:
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI|Książka/artykuł}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI|Książka/artykuł}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI|Wikijunior:Książka/artykuł}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI|Wikijunior:Książka/artykuł}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}}
Gdy nazwa artykułu jest równa stronie głównej podręcznika
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI|Książka}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI|Książka}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI|Wikijunior:Książka}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI|Wikijunior:Książka}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka}}}}
==== {{Śródtytuł|m["NAZWAARTYKUŁUKSIĄŻKI2"]}}{{Code|m["NAZWAARTYKUŁUKSIĄŻKI2"]}} ====
===== Odpowiednik szablonowy =====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWAARTYKUŁUKSIĄŻKI2}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
===== Funkcja biblioteczna =====
Szablon wyodrębnia z pełnej nazwy artykułu jako nazwy strony jedynie jako podstrony książki przyporządkowanej jej. Jeżeli artykułem jest strona główna książki, to nazwa artykułu jest ciąg pusty o wartości równej nazwie sub-książki, czyli bez przestrzeni książki i projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
-- Tytuły stron książek
local strona_1 = "Książka/artykuł";
local strona_2 = "Wikijunior:Książka/artykuł";
local strona_3 = "Wikibooks:Brudnopis/Użytkownik/Książka/artykuł";
local strona_4 = "Szablon:Brudnopis/Użytkownik/Książka/artykuł";
local strona_5 = "Moduł:Brudnopis/Użytkownik/Książka/artykuł";
local strona_6 = "Książka";
local strona_7 = "Wikijunior:Książka";
local strona_8 = "Wikibooks:Brudnopis/Użytkownik/Książka";
local strona_9 = "Szablon:Brudnopis/Użytkownik/Książka";
local strona_10 = "Moduł:Brudnopis/Użytkownik/Książka";
-- Tabele nazw
local tabela_nazw_1={};
local tabela_nazw_2={};
local tabela_nazw_3={};
local tabela_nazw_4={};
local tabela_nazw_5={};
local tabela_nazw_6={};
local tabela_nazw_7={};
local tabela_nazw_8={};
local tabela_nazw_9={};
local tabela_nazw_10={};
-- Nazwy książek bez przestrzeni nazw
---- Zwraca wynik: "artykuł:
local nazwa_artykulu_ksiazki_1=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI2"](strona_1,tabela_nazw_1);
---- Zwraca wynik: "artykuł":
local nazwa_artykulu_ksiazki_2=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI2"](strona_2,tabela_nazw_2);
---- Zwraca wynik: "artykuł":
local nazwa_artykulu_ksiazki_3=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI2"](strona_3,tabela_nazw_3);
---- Zwraca wynik: "artykuł":
local nazwa_artykulu_ksiazki_4=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI2"](strona_4,tabela_nazw_4);
---- Zwraca wynik: "artykuł":
local nazwa_artykulu_ksiazki_5=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI2"](strona_5,tabela_nazw_5);
---- Zwraca wynik: "Książka":
local nazwa_artykulu_ksiazki_6=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI2"](strona_6,tabela_nazw_6);
---- Zwraca wynik: "Książka":
local nazwa_artykulu_ksiazki_7=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI2"](strona_7,tabela_nazw_7);
---- Zwraca wynik: "Książka":
local nazwa_artykulu_ksiazki_8=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI2"](strona_8,tabela_nazw_8);
---- Zwraca wynik: "Książka":
local nazwa_artykulu_ksiazki_9=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI2"](strona_9,tabela_nazw_9);
---- Zwraca wynik: "Książka":
local nazwa_artykulu_ksiazki_10=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI2"](strona_10,tabela_nazw_10);
</syntaxhighlight>
====== Przykłady użycia ======
Przykłady zastosowań szablonu {{s|NAZWAARTYKUŁUKSIĄŻKI2}}:
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI2|Książka/artykuł}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI2|Książka/artykuł}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI2|Wikijunior:Książka/artykuł}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI2|Wikijunior:Książka/artykuł}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI2|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI2|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI2|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI2|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI2|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI2|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}}
Artykuł równy głównej jej stronie:
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI2|Książka}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI2|Książka}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI2|Wikijunior:Książka}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI2|Wikijunior:Książka}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI2|Wikibooks:Brudnopis/Użytkownik/Książka}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI2|Wikibooks:Brudnopis/Użytkownik/Książka}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI2|Szablon:Brudnopis/Użytkownik/Książka}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI2|Szablon:Brudnopis/Użytkownik/Książka}}}}
* {{Code|{{s|NAZWAARTYKUŁUKSIĄŻKI2|Moduł:Brudnopis/Użytkownik/Książka}}}} → {{Tt|{{NAZWAARTYKUŁUKSIĄŻKI2|Moduł:Brudnopis/Użytkownik/Książka}}}}
==== {{Śródtytuł|m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]}}{{Code|m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]}} ====
===== Odpowiednik szablonowy =====
Odpowiednik szablonowy jest pod nazwą {{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
===== Funkcja biblioteczna =====
Szablon wyodrębnia z pełnej nazwy artykułu jako nazwy strony jedynie jego adres z nazwą sub-książki.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
-- Tytuły stron książek
local strona_1 = "Książka/artykuł";
local strona_2 = "Wikijunior:Książka/artykuł";
local strona_3 = "Wikibooks:Brudnopis/Użytkownik/Książka/artykuł";
local strona_4 = "Szablon:Brudnopis/Użytkownik/Książka/artykuł";
local strona_5 = "Moduł:Brudnopis/Użytkownik/Książka/artykuł";
local strona_6 = "Książka";
local strona_7 = "Wikijunior:Książka";
local strona_8 = "Wikibooks:Brudnopis/Użytkownik/Książka";
local strona_9 = "Szablon:Brudnopis/Użytkownik/Książka";
local strona_10 = "Moduł:Brudnopis/Użytkownik/Książka";
-- Tabele nazw
local tabela_nazw_1={};
local tabela_nazw_2={};
local tabela_nazw_3={};
local tabela_nazw_4={};
local tabela_nazw_5={};
local tabela_nazw_6={};
local tabela_nazw_7={};
local tabela_nazw_8={};
local tabela_nazw_9={};
local tabela_nazw_10={};
-- Nazwy książek bez przestrzeni nazw
---- Zwraca wynik: "Książka/artykuł":
local pelna_nazwa_artykulu_ksiazki_1=nazwy_modul["PEŁNANAZWAARTYKUŁUKSIĄŻKI"](strona_1,tabela_nazw_1);
---- Zwraca wynik: "Książka/artykuł":
local pelna_nazwa_artykulu_ksiazki_2=nazwy_modul["PEŁNANAZWAARTYKUŁUKSIĄŻKI"](strona_2,tabela_nazw_2);
---- Zwraca wynik: "Książka/artykuł":
local pelna_nazwa_artykulu_ksiazki_3=nazwy_modul["PEŁNANAZWAARTYKUŁUKSIĄŻKI"](strona_3,tabela_nazw_3);
---- Zwraca wynik: "Książka/artykuł":
local pelna_nazwa_artykulu_ksiazki_4=nazwy_modul["PEŁNANAZWAARTYKUŁUKSIĄŻKI"](strona_4,tabela_nazw_4);
---- Zwraca wynik: "Książka/artykuł":
local pelna_nazwa_artykulu_ksiazki_5=nazwy_modul["PEŁNANAZWAARTYKUŁUKSIĄŻKI"](strona_5,tabela_nazw_5);
---- Zwraca wynik: "Książka/artykuł":
local pelna_nazwa_artykulu_ksiazki_6=nazwy_modul["PEŁNANAZWAARTYKUŁUKSIĄŻKI"](strona_6,tabela_nazw_6);
---- Zwraca wynik: "Książka":
local pelna_nazwa_artykulu_ksiazki_7=nazwy_modul["PEŁNANAZWAARTYKUŁUKSIĄŻKI"](strona_7,tabela_nazw_7);
---- Zwraca wynik: "Książka":
local pelna_nazwa_artykulu_ksiazki_8=nazwy_modul["PEŁNANAZWAARTYKUŁUKSIĄŻKI"](strona_8,tabela_nazw_8);
---- Zwraca wynik: "Książka":
local pelna_nazwa_artykulu_ksiazki_9=nazwy_modul["PEŁNANAZWAARTYKUŁUKSIĄŻKI"](strona_9,tabela_nazw_9);
---- Zwraca wynik: "Książka":
local pelna_nazwa_artykulu_ksiazki_10=nazwy_modul["PEŁNANAZWAARTYKUŁUKSIĄŻKI"](strona_10,tabela_nazw_10);
</syntaxhighlight>
====== Przykłady użycia ======
Przykłady zastosowań szablonu {{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI}}:
* {{Code|{{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI|Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAARTYKUŁUKSIĄŻKI|Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI|Wikijunior:Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAARTYKUŁUKSIĄŻKI|Wikijunior:Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAARTYKUŁUKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAARTYKUŁUKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAARTYKUŁUKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}}
Artykuł równy głównej jej stronie:
* {{Code|{{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI|Książka}}}} → {{Tt|{{PEŁNANAZWAARTYKUŁUKSIĄŻKI|Książka}}}}
* {{Code|{{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI|Wikijunior:Książka}}}} → {{Tt|{{PEŁNANAZWAARTYKUŁUKSIĄŻKI|Wikijunior:Książka}}}}
* {{Code|{{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka}}}} → {{Tt|{{PEŁNANAZWAARTYKUŁUKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka}}}}
* {{Code|{{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka}}}} → {{Tt|{{PEŁNANAZWAARTYKUŁUKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka}}}}
* {{Code|{{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka}}}} → {{Tt|{{PEŁNANAZWAARTYKUŁUKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka}}}}
=== Przestrzenie książki w przestrzeniach nazw książkowych ===
==== {{Śródtytuł|m["NAZWAPRZESTRZENIKSIĄŻKI"]}}{{Code|m["NAZWAPRZESTRZENIKSIĄŻKI"]}} ====
===== Odpowiednik szablonowy =====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWAPRZESTRZENIKSIĄŻKI}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
===== Funkcja biblioteczna =====
Szablon wyodrębnia z pełnej nazwy artykułu przestrzeń nazw książki bez przestrzeni nazw projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
-- Tytuły stron książek
local strona_1 = "Książka/artykuł";
local strona_2 = "Wikijunior:Książka/artykuł";
local strona_3 = "Wikibooks:Brudnopis/Użytkownik/Książka/artykuł";
local strona_4 = "Szablon:Brudnopis/Użytkownik/Książka/artykuł";
local strona_5 = "Moduł:Brudnopis/Użytkownik/Książka/artykuł";
-- Tabele nazw
local tabela_nazw_1={};
local tabela_nazw_2={};
local tabela_nazw_3={};
local tabela_nazw_4={};
local tabela_nazw_5={};
-- Nazwy książek bez przestrzeni nazw
---- Zwraca wynik: "":
local nazwa_przestrzeni_ksiazki_1=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_1,tabela_nazw_1);
---- Zwraca wynik: "":
local nazwa_przestrzeni_ksiazki_2=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_2,tabela_nazw_2);
---- Zwraca wynik: "Brudnopis/Użytkownik":
local nazwa_przestrzeni_ksiazki_3=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_3,tabela_nazw_3);
---- Zwraca wynik: "Brudnopis/Użytkownik":
local nazwa_przestrzeni_ksiazki_4=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_4,tabela_nazw_4);
---- Zwraca wynik: "Brudnopis/Użytkownik":
local nazwa_przestrzeni_ksiazki_5=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_5,tabela_nazw_5);
</syntaxhighlight>
====== Przykłady użycia ======
Przykłady zastosowań szablonu {{s|NAZWAPRZESTRZENIKSIĄŻKI}}:
* {{Code|{{s|NAZWAPRZESTRZENIKSIĄŻKI|Książka/artykuł}}}} → {{Tt|{{NAZWAPRZESTRZENIKSIĄŻKI|Książka/artykuł}}}}
* {{Code|{{s|NAZWAPRZESTRZENIKSIĄŻKI|Wikijunior:Książka/artykuł}}}} → {{Tt|{{NAZWAPRZESTRZENIKSIĄŻKI|Wikijunior:Książka/artykuł}}}}
* {{Code|{{s|NAZWAPRZESTRZENIKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAPRZESTRZENIKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|NAZWAPRZESTRZENIKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAPRZESTRZENIKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|NAZWAPRZESTRZENIKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{NAZWAPRZESTRZENIKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}}
==== {{Śródtytuł|m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"]}}{{Code|m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"]}} ====
===== Odpowiednik szablonowy =====
Odpowiednik szablonowy jest pod nazwą {{s|PEŁNANAZWAPRZESTRZENIKSIĄŻKI}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
===== Funkcja biblioteczna =====
Szablon wyodrębnia z pełnej nazwy artykułu przestrzeń nazw książki z przestrzenią nazw projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
-- Tytuły stron książek
local strona_1 = "Książka/artykuł";
local strona_2 = "Wikijunior:Książka/artykuł";
local strona_3 = "Wikibooks:Brudnopis/Użytkownik/Książka/artykuł";
local strona_4 = "Szablon:Brudnopis/Użytkownik/Książka/artykuł";
local strona_5 = "Moduł:Brudnopis/Użytkownik/Książka/artykuł";
-- Tabele nazw
local tabela_nazw_1={};
local tabela_nazw_2={};
local tabela_nazw_3={};
local tabela_nazw_4={};
local tabela_nazw_5={};
-- Nazwy książek bez przestrzeni nazw
---- Zwraca wynik: "":
local pelna_nazwa_przestrzeni_ksiazki_1=nazwy_modul["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"](strona_1,tabela_nazw_1);
---- Zwraca wynik: "Wikijunior":
local pelna_nazwa_przestrzeni_ksiazki_2=nazwy_modul["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"](strona_2,tabela_nazw_2);
---- Zwraca wynik: "Wikibooks:Brudnopis/Użytkownik":
local pelna_nazwa_przestrzeni_ksiazki_3=nazwy_modul["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"](strona_3,tabela_nazw_3);
---- Zwraca wynik: "Szablon:Brudnopis/Użytkownik":
local pelna_nazwa_przestrzeni_ksiazki_4=nazwy_modul["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"](strona_4,tabela_nazw_4);
---- Zwraca wynik: "Moduł:Brudnopis/Użytkownik":
local pelna_nazwa_przestrzeni_ksiazki_5=nazwy_modul["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"](strona_5,tabela_nazw_5);
</syntaxhighlight>
====== Przykłady użycia ======
Przykłady zastosowań szablonu {{s|PEŁNANAZWAPRZESTRZENIKSIĄŻKI}}:
* {{Code|{{s|PEŁNANAZWAPRZESTRZENIKSIĄŻKI|Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAPRZESTRZENIKSIĄŻKI|Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAPRZESTRZENIKSIĄŻKI|Wikijunior:Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAPRZESTRZENIKSIĄŻKI|Wikijunior:Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAPRZESTRZENIKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAPRZESTRZENIKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAPRZESTRZENIKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAPRZESTRZENIKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|PEŁNANAZWAPRZESTRZENIKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{PEŁNANAZWAPRZESTRZENIKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}}
== Funkcje subnazw, nawet książkowe ==
=== {{Śródtytuł|m.NAZWASUBPODSTRONY}}{{Code|m.NAZWASUBPODSTRONY}} ===
===== Odpowiednik szablonowy =====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASUBPODSTRONY}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
===== Funkcja biblioteczna =====
Funkcja wyodrębnia subnazwę strony, z pełnej nazwy strony, z przestrzenią nazw, jeżeli nazwa strony jest równa pełnej stronie korzenia strony, w innych przypadkach ona działa podobnie jak funkcja: {{Code|{{sr|#m.NAZWASUBSTRONY|p=Nazwy/Tom IV}}}}. Posługuje się nazwą strony bezpośrednio w stanie surowym bez przekształcania inną funkcją w samej swojej definicji, ale można ręcznie przekształcać tę nazwę, podając odpowiednio w jej parametr.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local strona_1 = "Wikibooks:Strona";
local strona_2 = "Wikibooks:Strona/Strona_1/Strona_2/Strona_3";
local tabela_nazw_1 = {};
local tabela_nazw_2 = {};
-- Wyodrębnianie nazwy substrony z pełnej nazwy strony:
---- Zwraca wynik: "Wikibooks:Strona":
local nazwa_substrony_1 = nazwy_modul.NAZWASUBPODSTRONY(strona_1,tabela_nazw_1);
---- Zwraca wynik: "Strona 3":
local nazwa_substrony_2 = nazwy_modul.NAZWASUBPODSTRONY(strona_2,tabela_nazw_2);
</syntaxhighlight>
Przykłady wyodrębniania nazwy substrony z pełnej nazwy strony:
* {{Code|{{s|NAZWASUBPODSTRONY|Wikibooks:Strona}}}} → {{Tt|{{NAZWASUBPODSTRONY|Wikibooks:Strona}}}}
* {{Code|{{s|NAZWASUBPODSTRONY|Wikibooks:Strona/Strona_1/Strona_2/Strona_3}}}} → {{Tt|{{NAZWASUBPODSTRONY|Wikibooks:Strona/Strona_1/Strona_2/Strona_3}}}}
=== {{Śródtytuł|m.NAZWASUBSTRONY}}{{Code|m.NAZWASUBSTRONY}} ===
===== Odpowiednik szablonowy =====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASUBSTRONY}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. Jest bardzo podobna do szablonu {{s|NAZWASUBPODSTRONY}}.
===== Funkcja biblioteczna =====
Funkcja wyodrębnia subnazwę strony, z pełnej nazwy strony, bez przestrzeni nazw. Korzysta z funkcji {{Code|{{sr|#m.NAZWASUBPODSTRONY|p=Nazwy - Tom IV}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local strona_1 = "Wikibooks:Strona";
local strona_2 = "Wikibooks:Strona/Strona_1/Strona_2/Strona_3";
local tabela_nazw_1 = {};
local tabela_nazw_2 = {};
-- Wyodrębnianie nazwy substrony z pełnej nazwy strony:
---- Zwraca wynik: "Strona":
local nazwa_substrony_1 = nazwy_modul.NAZWASUBSTRONY(strona_1,tabela_nazw_1);
---- Zwraca wynik: "Strona 3":
local nazwa_substrony_2 = nazwy_modul.NAZWASUBSTRONY(strona_2,tabela_nazw_2);
</syntaxhighlight>
Przykłady wyodrębniania nazwy substrony z pełnej nazwy strony:
* {{Code|{{s|NAZWASUBSTRONY|Wikibooks:Strona}}}} → {{Tt|{{NAZWASUBSTRONY|Wikibooks:Strona}}}}
* {{Code|{{s|NAZWASUBSTRONY|Wikibooks:Strona/Strona_1/Strona_2/Strona_3}}}} → {{Tt|{{NAZWASUBSTRONY|Wikibooks:Strona/Strona_1/Strona_2/Strona_3}}}}
=== {{Śródtytuł|m["SUBNAZWAKSIĄŻKI"]}}{{Code|m["SUBNAZWAKSIĄŻKI"]}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|SUBNAZWAKSIĄŻKI}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon wyodrębnia z pełnej nazwy artykułu nazwę sub-książki, do której należy ten artykuł.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
-- Tytuły stron książek
local strona_1 = "Książka/artykuł";
local strona_2 = "Wikijunior:Książka/artykuł";
local strona_3 = "Wikibooks:Brudnopis/Użytkownik/Książka/artykuł";
local strona_4 = "Szablon:Brudnopis/Użytkownik/Książka/artykuł";
local strona_5 = "Moduł:Brudnopis/Użytkownik/Książka/artykuł";
-- Tabele nazw
local tabela_nazw_1={};
local tabela_nazw_2={};
local tabela_nazw_3={};
local tabela_nazw_4={};
local tabela_nazw_5={};
-- Nazwy książek bez przestrzeni nazw i przestrzeni nazw książki:
---- Zwraca wynik: "Książka":
local nazwa_subksiazki_1=nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_1,tabela_nazw_1);
---- Zwraca wynik: "Książka":
local nazwa_subksiazki_2=nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_2,tabela_nazw_2);
---- Zwraca wynik: "Książka":
local nazwa_subksiazki_3=nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_3,tabela_nazw_3);
---- Zwraca wynik: "Książka":
local nazwa_subksiazki_4=nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_4,tabela_nazw_4);
---- Zwraca wynik: "Książka":
local nazwa_subksiazki_5=nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_5,tabela_nazw_5);
</syntaxhighlight>
====== Przykłady użycia ======
Przykłady zastosowań szablonu {{s|SUBNAZWAKSIĄŻKI}}:
* {{Code|{{s|SUBNAZWAKSIĄŻKI|Książka/artykuł}}}} → {{Tt|{{SUBNAZWAKSIĄŻKI|Książka/artykuł}}}}
* {{Code|{{s|SUBNAZWAKSIĄŻKI|Wikijunior:Książka/artykuł}}}} → {{Tt|{{SUBNAZWAKSIĄŻKI|Wikijunior:Książka/artykuł}}}}
* {{Code|{{s|SUBNAZWAKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{SUBNAZWAKSIĄŻKI|Wikibooks:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|SUBNAZWAKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{SUBNAZWAKSIĄŻKI|Szablon:Brudnopis/Użytkownik/Książka/artykuł}}}}
* {{Code|{{s|SUBNAZWAKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}} → {{Tt|{{SUBNAZWAKSIĄŻKI|Moduł:Brudnopis/Użytkownik/Książka/artykuł}}}}
== Funkcje nazw korzeni stron ==
=== {{Śródtytuł|m.NAZWAKORZENIASTRONY}}{{Code|m.NAZWAKORZENIASTRONY}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWAKORZENIASTRONY}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Funkcja wyodrębnia korzeń (podstawę) strony, z pełnej nazwy strony, bez przestrzeni nazw projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local strona_1 = "Wikibooks:Strona";
local strona_2 = "Wikibooks:Strona/Strona_1/Strona_2/Strona_3";
local tabela_nazw_1 = {};
local tabela_nazw_2 = {};
-- Wyodrębnianie nazwy substrony z pełnej nazwy strony:
---- Zwraca wynik: "Strona":
local nazwa_substrony_1 = nazwy_modul.NAZWAKORZENIASTRONY(strona_1,tabela_nazw_1);
---- Zwraca wynik: "Strona":
local nazwa_substrony_2 = nazwy_modul.NAZWAKORZENIASTRONY(strona_2,tabela_nazw_2);
</syntaxhighlight>
Przykłady wyodrębniania nazwy korzenia (podstawę) strony, z pełnej nazwy strony, bez przestrzeni nazw projektu:
* {{Code|{{s|NAZWAKORZENIASTRONY|Wikibooks:Strona}}}} → {{Tt|{{NAZWAKORZENIASTRONY|Wikibooks:Strona}}}}
* {{Code|{{s|NAZWAKORZENIASTRONY|Wikibooks:Strona/Strona_1/Strona_2/Strona_3}}}} → {{Tt|{{NAZWAKORZENIASTRONY|Wikibooks:Strona/Strona_1/Strona_2/Strona_3}}}}
=== {{Śródtytuł|m["PEŁNANAZWAKORZENIASTRONY"]}}{{Code|m["PEŁNANAZWAKORZENIASTRONY"]}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|PEŁNANAZWAKORZENIASTRONY}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Funkcja wyodrębnia korzeń (podstawę) strony, z pełnej nazwy strony, z przestrzenią nazw projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local strona_1 = "Wikibooks:Strona";
local strona_2 = "Wikibooks:Strona/Strona_1/Strona_2/Strona_3";
local tabela_nazw_1 = {};
local tabela_nazw_2 = {};
-- Wyodrębnianie nazwy substrony z pełnej nazwy strony:
---- Zwraca wynik: "Wikibooks:Strona":
local nazwa_substrony_1 = nazwy_modul["PEŁNANAZWAKORZENIASTRONY"](strona_1,tabela_nazw_1);
---- Zwraca wynik: "Wikibooks:Strona":
local nazwa_substrony_2 = nazwy_modul["PEŁNANAZWAKORZENIASTRONY"](strona_2,tabela_nazw_2);
</syntaxhighlight>
====== Przykłady użycia ======
Przykłady wyodrębniania nazwy korzenia (podstawę) strony, z pełnej nazwy strony, z przestrzenią nazw projektu:
* {{Code|{{s|PEŁNANAZWAKORZENIASTRONY|Wikibooks:Strona}}}} → {{Tt|{{PEŁNANAZWAKORZENIASTRONY|Wikibooks:Strona}}}}
* {{Code|{{s|PEŁNANAZWAKORZENIASTRONY|Wikibooks:Strona/Strona_1/Strona_2/Strona_3}}}} → {{Tt|{{PEŁNANAZWAKORZENIASTRONY|Wikibooks:Strona/Strona_1/Strona_2/Strona_3}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
co2onix3plpwfgxx3nsy9wf1sa3c57d
Wikibooks:Moduły/Nazwy/Tom III
4
63008
560298
542603
2026-10-29T12:44:14Z
Persino
2851
560298
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 wydzielania z nazw ich części ==
=== {{Śródtytuł|m["CzęśćTytułu"]}}{{Code|m["CzęśćTytułu"]}} ===
Funkcje dla nazw z prawymi ukośnikami posiada parametr {{Code|1}}, który jest ta nazwą, i {{Code|2}}, który jest numerem poziomu adresu, jeżeli {{Code|([2]{{=}}{{=}}"1")}}, to wtedy ten wydzielony tytuł nie ma prawego ukośnika, a jeżeli: {{Code|([2]{{=}}{{=}}"2")}}, ma go w liczbie jeden.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local tytul = "Strona/Podstrona_1/Podstrona_2/Podstrona_3/Postrona_4/Podstrona_5";
-- Funkcja zwraca wynik: "Strona":
local nadtytul_1 = nazwy_modul["CzęśćTytułu"]{[1] = tytuł, [2] = "1",};
-- Funkcja zwraca wynik: "Strona/Podstrona_1/Podstrona_2":
local nadtytul_2 = nazwy_modul["CzęśćTytułu"]{[1] = tytuł, [2] = "3",};
</syntaxhighlight>
==== Przykłady użycia ====
Przykłady zastosowania funkcji:
* {{Code|{{m|Nazwy|CzęśćTytułu|Strona/Podstrona_1/Podstrona_2/Podstrona_3/Postrona_4/Podstrona_5|1|wyspecjalizowana{{=}}tak}}}} → {{Tt|{{#invoke:Nazwy|CzęśćTytułu|Strona/Podstrona_1/Podstrona_2/Podstrona_3/Postrona_4/Podstrona_5|1|wyspecjalizowana=tak}}}}
* {{Code|{{m|Nazwy|CzęśćTytułu|Strona/Podstrona_1/Podstrona_2/Podstrona_3/Postrona_4/Podstrona_5|3|wyspecjalizowana{{=}}tak}}}} → {{Tt|{{#invoke:Nazwy|CzęśćTytułu|Strona/Podstrona_1/Podstrona_2/Podstrona_3/Postrona_4/Podstrona_5|3|wyspecjalizowana=tak}}}}
== Funkcje pełnych nazw strony skonstruowane z innych nazw ==
=== {{Śródtytuł|m["NazwaModułu"]}}{{Code|m["NazwaModułu"]}} ===
Funkcja łączy nazwę przestrzeni nazw, nazwę przestrzeni książki, nazwę książki i nazwę artykułu w jeden ciąg, którym jest pełna nazwa artykułu.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
local nazwa_przestrzeni = "Wikibooks";
local nazwa_przestrzeni_ksiazki = "Brudnopis/Użytkownik";
local subnazwa_ksiazki = "Książka";
local nazwa_artykulu = "Artykuł";
-- Otrzymamy wynik: "Wikibooks:Brudnopis/Użytkownik/Książka/Artykuł":
local nazwa_strony = nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,subnazwa_ksiazki,nazwa_artykulu);
</syntaxhighlight>
Należy tutaj pamiętać, że nazwy przestrzeni książki w niby-przestrzeni nazw innej niż: {{lr2|Brudnopis}}, {{ls2|Brudnopis}} i {{ld2|Brudnopis}} jest wartością pustą, a dla tych przestrzeni przyjmuje wartość {{Code|Brudnopis/<użytkownik}}, a ich przestrzenie nazw są podane kolejno: {{Np|Wikibooks|link=tak}}, {{Np|Template|link=tak}} i {{Np|Module|link=tak}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4qv20uxxfc0cvl2hcvsdy0r3556t2pm
Wikibooks:Moduły/Pudełko/Tom I
4
63495
560300
554199
2026-10-29T13:10:23Z
Persino
2851
560300
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.CzyNiepoprawnaNazwa}}{{Code|p.CzyNiepoprawnaNazwa}} ==
Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|}} (kod {{Code|{{Nowiki|}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki.
Skrótowa definicja funkcji:
<syntaxhighlight lang="lua">
function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
-- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "";
local html_dane_modul=mw.loadData("Module:Html/dane");
return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);");
</syntaxhighlight>
Parametry:
* {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia.
Przykłady:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
-- Podana przykładowa niepoprawna nazwa jedostki
local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]";
-- Funkcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Śródtytuł|p["Nazwa przestrzeni nazw"]}}{{Code|p["Nazwa przestrzeni nazw"]}} ===
Funkcja liczy bezpośrednio nazwę przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi.
Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
-- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów;
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}}
=== {{Śródtytuł|p["Nazwa przedmiotowej przestrzeni nazw"]}}{{Code|p["Nazwa przedmiotowej przestrzeni nazw"]}} ===
Funkcja liczy bezpośrednio nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi.
Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
-- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów;
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskuja pomocy|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskuja pomocy|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskuja pomocy|numer jednostki=2}}}}
=== {{Śródtytuł|p["Nazwa przestrzeni nazw dyskusji"]}}{{Code|p["Nazwa przestrzeni nazw dyskusji"]}} ===
Funkcja liczy bezpośrednio nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi.
Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
-- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów;
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}}
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Śródtytuł|p["Nazwa przestrzeni nazw 2"]}}{{Code|p["Nazwa przestrzeni nazw 2"]}} ===
Funkcja liczy nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi.
Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki;
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Nazwa przedmiotowej przestrzeni nazw 2"]}}{{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"]}} ===
Funkcja liczy nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi.
Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa");
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Nazwa przestrzeni nazw dyskusji 2"]}}{{Code|p["Nazwa przestrzeni nazw dyskusji 2"]}} ===
Funkcja liczy nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi.
Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja");
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Śródtytuł|p["Nazwa przestrzeni nazw 3"]}}{{Code|p["Nazwa przestrzeni nazw 3"]}} ===
Funkcja liczy nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi.
Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"]|p=Pudełko/Tom I}}}}.
Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
-- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0);
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów;
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2);
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"]|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Pomoc:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"]}} ===
Funkcja liczy nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi.
Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przedmiotowej, po transformacji, przestrzeni głównej (to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"]|p=Pudełko/Tom I}}}}.
Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości, po przekształceniu, przedmiotowej przestrzeni głównej (okresla to przestrzeń nazw główną lub „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
-- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0);
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów;
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1);
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"]|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskuja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskuja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskuja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Nazwa przestrzeni nazw dyskusji 3"]}}{{Code|p["Nazwa przestrzeni nazw dyskusji 3"]}} ===
Funkcja liczy nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi.
Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"]|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"]|p=Pudełko/Tom I}}}}.
Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
-- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0);
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów;
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1);
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"]|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"]|p=Pudełko/Tom I}}}}.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
== Funkcje nazw jednostki ==
=== {{Śródtytuł|p["Nazwa jednostki"]}}{{Code|p["Nazwa jednostki"]}} ===
Funckja bezpośrednio przepisuje nazwę jednostki z parametrów nazwy jednostki.
Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa jednostki"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw;
return pudelko_pomocne_modul.Nazwa_jednostki(frame,i);
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
== Funkcje nazw jednostki drugiej wersji ==
=== {{Śródtytuł|p["Nazwa jednostki 2"]}}{{Code|p["Nazwa jednostki 2"]}} ===
Funkcja liczy nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek.
Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}.
Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa jednostki 2"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną;
return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil);
</syntaxhighlight>
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Nazwa przedmiotowa jednostki 2"]}}{{Code|p["Nazwa przedmiotowa jednostki 2"]}} ===
Funkcja liczy przedmiotową nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek.
Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}}.
Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}.
Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa, po zamianie, nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną, czy „Dyskusja”), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji";
return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa");
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskuja pomocy|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskuja pomocy|nazwa jednostki=Dyskuja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskuja pomocy|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskuja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Nazwa dyskusji jednostki 2"]}}{{Code|p["Nazwa dyskusji jednostki 2"]}} ===
Funkcja liczy dyskusji nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek.
Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}}.
Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}.
Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną;
return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja");
</syntaxhighlight>
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Śródtytuł|p["Nazwa jednostki 3"]}}{{Code|p["Nazwa jednostki 3"]}} ===
Funkcja liczy nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek.
Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}}.
Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa jednostki 3"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
-- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0);
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów;
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2);
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki|p=Pudełko/Pomocne}}}} , tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}}.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Nazwa przedmiotowa jednostki 3"]}}{{Code|p["Nazwa przedmiotowa jednostki 3"]}} ===
Funkcja liczy przedmiotową nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek.
Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom I}}}}.
Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną, czy „Dyskusja”), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
-- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0);
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów;
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2);
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom I}}}}.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskuja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskuja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskuja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Nazwa dyskusji jednostki 3"]}}{{Code|p["Nazwa dyskusji jednostki 3"]}} ===
Funkcja liczy dyskusji nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek.
Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"]|p=Pudełko/Tom I}}}}.
Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"]|p=Pudełko/Tom I}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
-- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0);
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów;
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2);
</syntaxhighlight>
Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"]|p=Pudełko/Tom I}}}}.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
kq3ju9eht8694samgnk2gvk7j4l6egk
Wikibooks:Moduły/Pudełko/Tom II
4
63496
560301
554200
2026-10-29T13:19:16Z
Persino
2851
560301
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pełnych nazw jednostki ==
=== {{Śródtytuł|p["Pełna nazwa jednostki"]}}{{Code|p["Pełna nazwa jednostki"]}} ===
Funkcja liczy bezpośrednio pełną nazwę strony z parametrów przestrzennych i nazw jednostki.
Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"]|p=Pudełko/Tom II}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_modul=require("Module:Pudełko");
---- Liczy nazwę przestrzeni nazw;
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
---- Liczy nazwę jednostki;
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki);
---- Liczy pełną nazwę jednostki;
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
</syntaxhighlight>
Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"]|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Pełna nazwa przedmiotowa jednostki"]}}{{Code|p["Pełna nazwa przedmiotowa jednostki"]}} ===
Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki.
Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom II}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_modul=require("Module:Pudełko");
---- Liczy nazwę przedmiotową przestrzeni nazw;
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
---- Liczy nazwę jednostki;
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki);
---- Liczy pełną nazwę jednostki;
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
</syntaxhighlight>
Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"]|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Pełna nazwa dyskusji jednostki"]}}{{Code|p["Pełna nazwa dyskusji jednostki"]}} ===
Funkcja liczy pełną nazwę strony, w przestrzeni dyskusji, z parametrów przestrzennych i nazw jednostki.
Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"]|p=Pudełko/Tom II}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_modul=require("Module:Pudełko");
---- Liczy nazwę przestrzeni nazw dyskusji;
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
---- Liczy pełną nazwę jednostki;
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki);
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
</syntaxhighlight>
Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"]|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Śródtytuł|p["Pełna nazwa jednostki 2"]}}{{Code|p["Pełna nazwa jednostki 2"]}} ===
Funkcja liczy pełną nazwę strony z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji drugiej.
Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"]|p=Pudełko/Tom II}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_modul=require("Module:Pudełko");
---- Liczy nazwę przestrzeni nazw;
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki);
---- Liczy pełną nazwę jednostki;
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
</syntaxhighlight>
Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"]|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Pełna nazwa przedmiotowa jednostki 2"]}}{{Code|p["Pełna nazwa przedmiotowa jednostki 2"]}} ===
Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji drugiej.
Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"]|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"]|p=Pudełko/Tom II}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_modul=require("Module:Pudełko");
---- Liczy nazwę przedmiotową przestrzeni nazw;
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
---- Liczy nazwę jednostki;
local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki);
---- Liczy pełną nazwę jednostki;
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
</syntaxhighlight>
Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"]|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Pełna nazwa dyskusji jednostki 2"]}}{{Code|p["Pełna nazwa dyskusji jednostki 2"]}} ===
Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji drugiej.
Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"]|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"]|p=Pudełko/Tom II}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_modul=require("Module:Pudełko");
---- Liczy nazwę przedmiotową przestrzeni nazw;
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
---- Liczy nazwę jednostki;
local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki);
---- Liczy pełną nazwę jednostki;
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
</syntaxhighlight>
Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"]|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"]|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Śródtytuł|p["Pełna nazwa jednostki 3"]}}{{Code|p["Pełna nazwa jednostki 3"]}} ===
Funkcja liczy pełną nazwę strony z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji podstawowej i drugiej.
Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"]|p=Pudełko/Tom II}}}}, wtedy dla przestrzeni nazw głównej nazwa przestrzeni z nazwy jednostki się nie liczy, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"]|p=Pudełko/Tom II}}}}, a tutaj się liczy.
Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"]|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"]|p=Pudełko/Tom II}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_modul=require("Module:Pudełko");
---- Liczy nazwę przestrzeni nazw i nazwę jednostki;
local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0);
---- Liczy pełną nazwę jednostki;
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
</syntaxhighlight>
Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}}.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Pełna nazwa przedmiotowa jednostki 3"]}}{{Code|p["Pełna nazwa przedmiotowa jednostki 3"]}} ===
Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji podstawowej i drugiej.
Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"]|p=Pudełko/Tom II}}}}, wtedy dla przedmiotowej przestrzeni, po zamianie, nazw głównej (co odpowiada przestrzeni głównej lub „Dyskusja”) nazwa jednostki się nie liczy, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom II}}}}, a tutaj się liczy.
Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"]|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom II}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_modul=require("Module:Pudełko");
---- Liczy nazwę przestrzeni nazw i nazwę jednostki;
local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0);
---- Liczy pełną nazwę jednostki;
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
</syntaxhighlight>
Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom I}}}}.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja pomocy:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
=== {{Śródtytuł|p["Pełna nazwa dyskusji jednostki 3"]}}{{Code|p["Pełna nazwa dyskusji jednostki 3"]}} ===
Funkcja liczy pełną nazwę strony, w przestrzeni dyskusji, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji podstawowej i drugiej.
Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"]|p=Pudełko/Tom II}}}}, wtedy dla przestrzeni nazw głównej nazwa przestrzeni z nazwy jednostki się nie liczy, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"]|p=Pudełko/Tom II}}}}, a tutaj się liczy.
Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"]|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"]|p=Pudełko/Tom II}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe;
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pudelko_modul=require("Module:Pudełko");
---- Liczy nazwę przestrzeni nazw i nazwę jednostki;
local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0);
---- Liczy pełną nazwę jednostki;
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
</syntaxhighlight>
Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej.
Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"]|p=Pudełko/Tom I}}}}.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}}
* {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
sudctyntp7g0wuk02xiee34emfo7wnz
Wikibooks:Moduły/Pudełko/Tom III
4
63497
560302
554201
2026-10-29T13:26:33Z
Persino
2851
560302
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Różne rodzaje i typy funkcji typów jednostek ==
=== Funkcje typu jednostki podstawowe ===
==== {{Śródtytuł|p["Typ jednostki"]}}{{Code|p["Typ jednostki"]}} ====
Liczy typ jednostki bezpośrednio z parametrów przestrzennych, reprezentujących odpowiednie przestrzenie nazw.
Typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Typ jednostki 2"]|p=Pudełko/Tom III}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Typ jednostki"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczony jest typ jednostki bez transformacji;
return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0);
</syntaxhighlight>
Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}}
==== {{Śródtytuł|p["Przedmiotowy typ jednostki"]}}{{Code|p["Przedmiotowy typ jednostki"]}} ====
Liczy przedmiotowy typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw przedmiotowe.
Przedmiotowy typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"]|p=Pudełko/Tom III}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Przedmiotowy typ jednostki"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczony jest typ jednostki po transformacji na przedmiotowy, a jeżeli jest już taka, to nie ma zadnego przekształcenia;
return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,0);
</syntaxhighlight>
Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}}
==== {{Śródtytuł|p["Dyskusyjny typ jednostki"]}}{{Code|p["Dyskusyjny typ jednostki"]}} ====
Liczy dyskusyjny typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw dyskusji.
Dyskusyjny typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"]|p=Pudełko/Tom III}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Dyskusyjny typ jednostki"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia;
return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0);
</syntaxhighlight>
Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}}
=== Funkcje typu jednostki wersji drugiej ===
==== {{Śródtytuł|p["Typ jednostki 2"]}}{{Code|p["Typ jednostki 2"]}} ====
Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących odpowiednie przestrzenie nazw.
Typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki. Gdy parametry przestrzenne lub typ jednostki, jako parametr, w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Typ jednostki"]|p=Pudełko/Tom III}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Typ jednostki 2"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczony jest typ jednostki bezposrednio bez transformacji;
return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,1);
</syntaxhighlight>
Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
==== {{Śródtytuł|p["Przedmiotowy typ jednostki 2"]}}{{Code|p["Przedmiotowy typ jednostki 2"]}} ====
Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie przedmiotowe.
Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Przedmiotowy typ jednostki"]|p=Pudełko/Tom III}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Przedmiotowy typ jednostki 2"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia;
return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,1);
</syntaxhighlight>
Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
==== {{Śródtytuł|p["Dyskusyjny typ jednostki 2"]}}{{Code|p["Dyskusyjny typ jednostki 2"]}} ====
Liczy dyskusyjny typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie dyskusji.
Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Dyskusyjny typ jednostki"]|p=Pudełko/Tom III}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Dyskusyjny typ jednostki 2"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia;
return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,1);
</syntaxhighlight>
Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
=== Funkcje typu jednostki wersji trzeciej ===
==== {{Śródtytuł|p["Typ jednostki 3"]}}{{Code|p["Typ jednostki 3"]}} ====
Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących odpowiednie przestrzenie nazw.
Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki"]|p=Pudełko/Tom III}}}}.
Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki 2"]|p=Pudełko/Tom III}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Typ jednostki 3"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczony jest typ jednostki bezposrednio bez transformacji;
return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,nil);
</syntaxhighlight>
Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
==== {{Śródtytuł|p["Przedmiotowy typ jednostki 3"]}}{{Code|p["Przedmiotowy typ jednostki 3"]}} ====
Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw przedmiotowe.
Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki"]|p=Pudełko/Tom III}}}}.
Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"]|p=Pudełko/Tom III}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Przedmiotowy typ jednostki 3"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczony jest typ jednostki bezposrednio bez transformacji;
return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,nil);
</syntaxhighlight>
Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}}
==== {{Śródtytuł|p["Dyskusyjny typ jednostki 3"]}}{{Code|p["Dyskusyjny typ jednostki 3"]}} ====
Liczy dyskusyjne typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw dyskusji.
Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Dyskusyjny typ jednostki"]|p=Pudełko/Tom III}}}}.
Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"]|p=Pudełko/Tom III}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Dyskusyjny typ jednostki 3"]=function(frame,i)...end;
</syntaxhighlight>
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
-- Liczony jest typ jednostki bezposrednio bez transformacji;
return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,nil);
</syntaxhighlight>
Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji.
Przykłady w wikikodzie:
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cl797gqoz06jw6fjm17je3jt7ftvz4c
Wikibooks:Moduły/Pudełko/Tom IV
4
63498
560303
554202
2026-10-29T13:32:08Z
Persino
2851
560303
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 budująca funkcje błędów pudełka ==
=== {{Śródtytuł|p.Problemy_kontenerowe_szablonowe}}{{Code|{{sr|#p.Problemy_kontenerowe_szablonowe|p=Pudełko/Potrzebne}}}} ===
Funkcje błędów pudełka {{Code|{{m|Pudełko|Błędy pudełka}}}}, wywołują funkcję {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe|p=Pudełko/Potrzebne}}}}, z różnymi parametrami.
Przedstawimy działanie tej funkcji mieszczącej sie na stronie {{Code|{{ld|Pudełko/Potrzebne|Pudełko - Potrzebne}}}}.
Definicja skrótowa:
<syntaxhighlight lang="lua">
function p.Problemy_kontenerowe_szablonowe(frame, kod_liczbowy_przestrzeni_nazw)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|kod_liczbowy_przestrzeni_nazw}} - czy przestrzeń nazw ma liczyć normalnie, przedmiotowo, czy dyskusyjnie.
==== Parametry funkcji ====
W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica.
Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem.
Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Potrzebne}}}}.
Te parametry jednocześnie przyjmuje funkcja {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobne, więc niektóre parametry obu funkcji mogą być wspólne, i też one działają na funkcję od typu jednostki, nie tylko, ale również na funkcje od błędu pudełka {{Code|{{m|Pudełko|Błędy pudełka}}}}, i jego kolegów, jak wywołujemy tą ostatnią.
===== {{Code|obsługiwany brudnopis projektu}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|obsługiwany brudnopis projektu{{=}}tak}}}}.
Włącza obsługę brudnopisu projektu w przestrzeni nazw {{Np|Project|link=tak}} w niby-przestrzeni nazw {{lr2|Brudnopis}}/<użytkownik>.
===== {{Code|obsługiwany brudnopis modułu}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|obsługiwany brudnopis modułu{{=}}tak}}}}.
Włącza obsługę brudnopisu projektu w przestrzeni nazw {{Np|Module|link=tak}} w niby-przestrzeni nazw {{ld2|Brudnopis}}/<użytkownik>.
===== {{Code|obsługiwany brudnopis szablonu}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|obsługiwany brudnopis szablonu{{=}}tak}}}}.
Włącza obsługę brudnopisu projektu w przestrzeni nazw {{Np|Template|link=tak}} w niby-przestrzeni nazw {{ls2|Brudnopis}}/<użytkownik>.
===== {{Code|nieobsługiwane strony główne}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony główne{{=}}tak}}}}.
Wyłącza obsługę stron głównych na polskim {{NS|k=b|l=tak|p=mj}}, czyli stron: {{lr2|Strona główna}} (strona główna projektu) i {{lj2|Strona główna}} (strona główna dla dzieci).
Równoważny wywołaniu błędowym:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwana strona główna projektu{{=}}tak|nieobsługiwana strona główna dla dzieci{{=}}tak|nieobsługiwane strony główne użytkowników{{=}}tak}}}}.
===== {{Code|nieobsługiwane strony szablonów}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony szablonów{{=}}tak}}}}.
Wyłącza obsługę stron nieopisowych szablonów według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}.
===== {{Code|nieobsługiwane strony opisu szablonów}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony opisu szablonów{{=}}tak}}}}.
Wyłącza obsługę stron opisowych szablonów według funkcji; {{Code|{{m|Pudełko|Typ jednostki}}}}.
===== {{Code|nieobsługiwane strony modułów}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony modułów{{=}}tak}}}}.
Wyłącza obsługę stron nieopisowych modułów według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}.
===== {{Code|nieobsługiwane strony opisu modułów}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony opisu szablonów{{=}}tak}}}}.
Wyłącza obsługę stron opisowych modułów według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}.
===== {{Code|nieobsługiwane strony brudnopisu szablonów}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony brudnopisu szablonów{{=}}tak}}}}.
Wyłącza obsługę stron nieopisowych brudnopisu szablonów, według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, znajdujących się w przestrzeni nazw {{Np|Template|link=tak}} w niby-przestrzeni nazw {{ls2|Brudnopis}}/<użytkownik>.
===== {{Code|nieobsługiwane strony brudnopisu opisu szablonów}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony brudnopisu opisu szablonów{{=}}tak}}}}.
Wyłącza obsługę stron opisowych brudnopisu szablonów, według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, znajdujących się w przestrzeni nazw {{Np|Template|link=tak}} w niby-przestrzeni nazw {{ls2|Brudnopis}}/<użytkownik>.
===== {{Code|nieobsługiwane strony brudnopisu modułów}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony brudnopisu modułów{{=}}tak}}}}.
Wyłącza obsługę stron nieopisowych brudnopisu modułów, według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, znajdujących się w przestrzeni nazw {{Np|Template|link=tak}} w niby-przestrzeni nazw {{ld2|Brudnopis}}/<użytkownik>.
===== {{Code|nieobsługiwane strona brudnopisu opisu modułów}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strona brudnopisu opisu modułów{{=}}tak}}}}.
Wyłącza obsługę stron opisowych brudnopisu modułów, według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, znajdujących się w przestrzeni nazw {{Np|Template|link=tak}} w niby-przestrzeni nazw {{ld2|Brudnopis}}/<użytkownik>.
===== {{Code|nieobsługiwane strony jednostek programowych}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony jednostek programowych{{=}}tak}}}}.
Wyłącza obsługę stron szablonów i modułów, nieopisowych, według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, jednostek programowych, znajdujących się w przestrzeni nazw {{Np|Template|link=tak}} lub {{Np|Module|link=tak}}.
===== {{Code|nieobsługiwane strony opisu jednostek programowych}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony opisu jednostek programowych{{=}}tak}}}}.
Wyłącza obsługę stron szablonów i modułów, opisowych, według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, opisów jednostek programowych, znajdujących się w przestrzeni nazw {{Np|Template|link=tak}} lub {{Np|Module|link=tak}}.
===== {{Code|nieobsługiwane strony główne użytkowników}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony główne użytkowników{{=}}tak}}}}.
Wyłącza obsługę stron głównych użytkowników według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, znajdujących się w przestrzeni nazw {{Np|User|link=tak}}.
===== {{Code|nieobsługiwana strona główna projektu}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwana strona główna projektu{{=}}tak}}}}.
Wyłącza obsługę stron głównych użytkowników według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, znajdujących się w przestrzeni nazw {{Np|User|link=tak}}, dla strony {{lr2|Strona główna}}.
===== {{Code|nieobsługiwana strona główna dla dzieci}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwana strona główna dla dzieci{{=}}tak}}}}.
Wyłącza obsługę stron głównych dla dzieci według funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, znajdujących się w przestrzeni nazw {{Np|Wikijunior|link=tak}}, dla strony {{lj2|Strona główna}}.
===== {{Code|obsługiwane niebieżące wiki}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|obsługiwane niebieżące wiki{{=}}tak}}}}.
Włącza obsługę stron z niebieżącego wiki, czyli innych niż w języku polskim: {{NS|k=b|l=tak}}, tzn. po włączeniu tej funkcji, jest obsługa różnych jego wersji siostrzanych projektowych i jego językowych adresów stron.
===== {{Code|nieobsługiwane polskie wiki}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane polskie wiki{{=}}tak}}}}.
Wyłącza obsługę stron z polskiego wiki na: {{NS|k=b|l=tak|pk=mj}}, tzn. po włączeniu tej funkcji, jest obsługa różnych jego wersji siostrzanych projektowych i jego językowych (innych niż polski) adresów stron.
===== {{Code|nieobsługiwane lokalne wiki}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane lokalne wiki{{=}}tak}}}}.
Wyłącza obsługę stron ze wszystkich: {{NS|k=b|l=tak|pk=c}}, tzn. po włączeniu tej funkcji, jest obsługa różnych jego wersji siostrzanych projektowych (inne niż wszystkie wersje językowe bieżącego projektu) i jego językowych adresów stron.
===== {{Code|wyłącz niezależność od nazwij jednostką}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|wyłącz niezależność od nazwij jednostką{{=}}tak}}}}.
Wyłącza niezależność od parametru {{Parametr|nazwij jednostką|tak}}, czyli włącza zależność od tego parametru, nawet gdy jest on podany niepusty, wsadzanym do parametrów szablonu pudełka z funkcjami ramek wywołań pudełek {{m|Pudełko}}.
===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} =====
Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest:
: {{Code|{{m|Pudełko|Błędy pudełka|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}.
Traktuje wszystkie strony użytkownika jako normalne strony użytkownika, co według funkcji: {{m|Pudełko|Typ jednostki}}, wtedy ma on typ {{Code|strona użytkownika}}.
===== Dodatkowe zmienne błędów i cech pudełka =====
Zmienne te to są inne niż podstawowe, coś ustawiające, ale te parametry opisują dodatkowe parametry do tego z nagłówka.
Dla pojęc bazowych i numerkowych, o pewnej podstawie, ta bazowa (o numerze {{Code|0}}, czyli: {{Parametr|numer jednostki|0}}), ta bez numerka, a te z numerkiem (po podstawie jest numerek po spacji), czyli one numerkowe ({{Code|numer jednostki}} > {{Code|0}}), więc np. {{Parametr|numer jednostki|2}}.
====== {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}},... ======
Licząc po kolei, są to elementy o podstawie: '''nazwa jednostki''', bazowa i numerkowe.
====== {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}},... ======
Licząc po kolei, są to elementy o podstawie: '''typ jednostki''', bazowa i numerkowe.
====== {{Code|strona główna projektu}}, {{Code|strona główna projektu 1}}, {{Code|strona główna projektu 2}},... ======
Licząc po kolei, są to elementy o podstawie: '''strona główna projektu''', bazowa i numerkowe.
====== {{Code|strona główna dla dzieci}}, {{Code|strona główna dla dzieci 1}}, {{Code|strona główna dla dzieci 2}},... ======
Licząc po kolei, są to elementy o podstawie: '''strona główna dla dzieci''', bazowa i numerkowe.
====== {{Code|nazwy jednostki numerowane}} ======
Uwzględnia, tylko że nazwy jednostki muszą być numerowane, czyli zaczynające się od liczby całkowitej dodatniej {{Code|1}}.
====== {{Code|maksymalny numer argumentu nienazwanego}} ======
Dla argumentów nienazwanych, jego maksymalny numer określa ta zmienna, czyli: {{Code|1}}, {{Code|2}},..., {{Code|maksymalny numer argumentu nienazwanego}}. Ten parametr działa, gdy jest ustawiona zmienna: {{Code|nazwy jednostki numerowane}}, z wartością większą, określoną liczbą naturalną, większą niż zero.
====== {{Code|dodatkowy warunek}}, {{Code|dodatkowy warunek 1}}, {{Code|dodatkowy warunek 2}},... ======
Są to dodatkowe warunki, na zwracane błędy i jego kategorie, przez dodatkowe warunki, nieimplmentowane standardowo, przez funkcję błędów i cech, ale jako dodatek. Przykład użycia: {{s|Dopracować}}.
====== {{Code|błędy dodatkowego warunku 1}}, {{Code|błędy dodatkowego warunku 2}},... ======
Ta zmienna ma wartości z komunikatami błędów zwracanymi przez szablon pudełek, gdy nastąpił jakiś błąd odpowiednio, gdy jakiś właściwy '''dodatkowy warunek''' nastąpił. Przykład użycia: {{s|Dopracować}}.
====== {{Code|dodatek kategorii błędu dodatkowego warunku 1}}, {{Code|dodatek kategorii błędu dodatkowego warunku 2}},... ======
Ta zmienna przedstawia dodatek do kategorii, gdy jakiś odpowiedni '''dodatkowy warunek''' wystąpił, występujący pomyślniku z obu stron oddzielony spacjami. Przykład użycia: {{s|Dopracować}}.
==== Inne parametry ====
Parametr dostępny dla ramki {{Code|frame.args["<parametr>"]}}, jak i dla jej rodzica {{Code|frame:getParent().args["<parametr>"]}}, gdzie {{Code|<parametr>}}, jest to nazwa tego parametru. Parametry dziecka są tutaj ważniejsze od parametrów szablonów rodzica, o takiej samej nazwie.
===== {{Code|bez kategorii}} =====
Wyłącza obsługę kategorii błędów, jak i czasami całego szablonu pudełka, przy podaniu {{Parametr|bez katgorii|tak}}.
===== {{Code|nazwij jednostką}} =====
Strona nazywa, wtedy je „jednostkami”, przy podanym parametrze {{Parametr|nazwij jednostką|tak}}.
===== {{Code|bez szczegółów}} =====
Funkcja nie wyświetla błędów, w całej liście, tylko powiadamia, że błąd w ogóle nastąpił.
==== Parametry numerowane ====
Jako parametry numerowane tej funkcji błędów piszemy nazwy nazw przestrzeni nazw, najlepiej w postaci kanonicznej. Te parametry nie mogą się powtarzać i muszą istnieć, czyli:
: {{Code|{{m|Pudełko|Błędy pudełka|...|(main)|Wikijunior|User|File|Category|Template|Module|Wikibooks|Help|MediaWiki|Special}}}}.
Te parametry zwykle piszemy na samym końcu wywołania tej funkcji bibliotecznej użytej w postaci ramki {{Lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Można też podawać przestrzenie nazw językowe:
: {{Code|{{m|Pudełko|Błędy pudełka|...|Project:en:w,de:s|...}}}}
To oznacza, że mamy przestrzeń: {{NpDane|Project|kanoniczna=tak|klucz projektu=en:w|link=tak}}, na projekcie: {{Code|en:w}}, i też: {{NpDane|Project|kanoniczna=tak|klucz projektu=de:s|link=tak}}, na projekcie: {{Code|de:s}}.
Też można napisać ogólnie, wtedy trzeba przestrzenie pisać w postaci kanonicznej, żeby one były we wszystkich językach i projektach obsługiwane przez '''wiki''', których one dotyczą.
==== Parametry błędow i cechy oraz implemetacja funkcji cech przy pomocy funkcji błędów ====
Zamiast poszczególnych funkcji błędów, można też użyć najlepiej funkcji cech, co jest tak robione na polskim {{NS|l=tak|pk=mj}}, np.:
* {{Code|{{m|Pudełko|{{sr|#p["Błędy pudełka"]|Błędy pudełka|p=Pudełko/Tom IV}}|...}}}} → {{Code|{{m|Pudełko|{{sr|#p["Cecha pudełka"]|Cecha pudełka|p=Pudełko/Tom IV}}|...}}}},
* {{Code|{{m|Pudełko|{{sr|#p["Przedmiotowe błędy pudełka"]|Przedmiotowe błędy pudełka|p=Pudełko/Tom IV}}|...}}}} → {{Code|{{m|Pudełko|{{sr|#p["Przedmiotowa cecha pudełka"]|Przedmiotowa cecha pudełka|p=Pudełko/Tom IV}}|...}}}},
* {{Code|{{m|Pudełko|{{sr|#p["Dyskusyjne błędy pudełka"]|Dyskusyjne błędy pudełka|p=Pudełko/Tom IV}}|...}}}} → {{Code|{{m|Pudełko|{{sr|#p["Dyskusyjna cecha pudełka"]|Dyskusyjna cecha pudełka|p=Pudełko/Tom IV}}|...}}}}.
Funkcje cech są budowane na podstawie odpowiednich funkcji błędów. Funkcje błędów uniemożliwiają uruchomić system zapytań, wtedy szablon {{s|Szablonowy opis pudełka}} będzie zwracał nieprzewidywalne wyniki, a nawet może zrzucić błędy języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, aby można było pytać szablonu pudełka (a więć i użyć tego szablonu), w którym w nim jest implementowane: {{Code|{{m|Pudełko|{{sr|#p["Ogólne pudełko"]|Ogólne pudełko|p=Pudełko/Tom V}}}}}}, należy użyć właściwych funkcji, czyli tej nadbudówki, wtedy to wstawiamy do parametru {{Parametr|cecha}}. Ale technicznie w tym parametrze można użyć zarówno funkcji błędów, jak i cech. Ale zalecane jest używanie za to funkcji cech dla ich ogólności, bo to drugie jest bardziej ogólniejsze niż to pierwsze.
== Funkcje błędów pudełka ==
Zestaw parametrów tej funkcji są przedstawione na podstawie wywołania {{Code|{{m|Pudełko|Błędy pudełka}}}}. Ta funkcja jest używana odpowiednio w innej funkcji wyższego poziomu według schematu:
* {{Code|{{sr|#p["Błędy pudełka"]|p=Pudełko/Tom IV}}}} → {{Code|{{sr|#p["Cecha pudełka"]|p=Pudełko/Tom IV}}}},
* {{Code|{{sr|#p["Przedmiotowe błędy pudełka"]|p=Pudełko/Tom IV}}}} → {{Code|{{sr|#p["Przedmiotowa cecha pudełka"]|p=Pudełko/Tom IV}}}},
* {{Code|{{sr|#p["Dyskusyjne błędy pudełka"]|p=Pudełko/Tom IV}}}} → {{Code|{{sr|#p["Dyskusyjna cecha pudełka"]|p=Pudełko/Tom IV}}}}.
Gdy ta funkcja nie znalazła żadnych błędów jawnych i niejawnych wywołania, to wtedy zwraca wartość pustą, w przeciwnym wypadku zwraca zestaw błędów, które należy naprawić, o ile jest to do naprawienia. Tą funkcję też można ustawić, aby jedynie zwracał, czy jakiś błąd w ogóle występuje, w tym celu wykorzystywuje się: {{Code|bez szczegółów}}. Można tez wyłączyć obsługę błędów w: {{Code|{{sr|#p["Ogólne pudełko"]|p=Pudełko/Tom V}}}}, za pomocą parametru szablonu rodzica, w którym jest włączone to wywołanie przy pomocy parametru: {{Code|bez błędu}}.
=== {{Śródtytuł|p["Błędy pudełka"]}}{{Code|p["Błędy pudełka"]}} ===
Funkcja, która bezpośrednio sprawdza, zasadność użycia szablonu bez zmiany przestrzeni nazw na przedmiotową, czy dyskusji, w których została umieszczona ta funkcja, wykorzystywana w funkcji: {{Code|{{sr|#p["Cecha pudełka"]|p=Pudełko/Tom IV}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Błędy pudełka"]=function(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu.
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
-- Funkcja błędów, generująca je, lub zwracająca ciąg pusty.
return pudelko_potrzebne_modul.Problemy_kontenerowe_szablonowe(frame,0);
</syntaxhighlight>
Funkcja wykorzystywuje {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe|p=Pudełko/Potrzebne}}}}.
=== {{Śródtytuł|p["Przedmiotowe błędy pudełka"]}}{{Code|p["Przedmiotowe błędy pudełka"]}} ===
Funkcja, która przedmiotowo sprawdza, zasadność użycia szablonu z zmianą przestrzeni nazw na przedmiotową, w których została umieszczona ta funkcja, wykorzystywana w funkcji: {{Code|{{sr|# p["Przedmiotowa cecha pudełka"]|p=Pudełko/Tom IV}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Przedmiotowe błędy pudełka"]=function(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu.
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
-- Funkcja błędów, generująca je, lub zwracająca ciąg pusty.
return pudelko_potrzebne_modul.Problemy_kontenerowe_szablonowe(frame,1);
</syntaxhighlight>
Funkcja wykorzystywuje {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe|p=Pudełko/Potrzebne}}}}.
=== {{Śródtytuł|p["Dyskusyjne błędy pudełka"]}}{{Code|p["Dyskusyjne błędy pudełka"]}} ===
Funkcja, która przedmiotowo sprawdza, zasadność użycia szablonu z zmianą przestrzeni nazw na dyskusji, w których została umieszczona ta funkcja, wykorzystywana w funkcji: {{Code|{{sr|#p["Dyskusyjna cecha pudełka"]|p=Pudełko/Tom IV}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Dyskusyjne błędy pudełka"]=function(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu.
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
-- Funkcja błędów, generująca je, lub zwracająca ciąg pusty.
return pudelko_potrzebne_modul.Problemy_kontenerowe_szablonowe(frame,2);
</syntaxhighlight>
Funkcja wykorzystywuje {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe|p=Pudełko/Potrzebne}}}}.
== Funkcje chech pudełka ==
Odpowiednie funkcje cechy pudełka umieszcza się w: {{Code|{{sr|#p["Ogólne pudełko"]|p=Pudełko/Tom V}}}}, pod parametrem {{Parametr|cecha}}.
=== {{Śródtytuł|p["Cecha pudełka"]}}{{Code|p["Cecha pudełka"]}} ===
Funkcja, która bezpośrednio sprawdza, zasadność użycia szablonu bez zmiany przestrzeni nazw na przedmiotową, czy dyskusji, w których została umieszczona ta funkcja, wykorzystuje on w swojej budowie funkcję: {{Code|{{sr|#p["Błędy pudełka"]|p=Pudełko/Tom IV}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Cecha pudełka"] = function(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu.
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
return pudelko_potrzebne_modul.Cecha_kontenerowa_szablonowa(frame,"Błędy pudełka");
</syntaxhighlight>
Funkcja wykorzystywuje funkcję: {{Code|{{sr|#p.Cecha_kontenerowa_szablonowa|p=Pudełko/Potrzebne}}}}, z drugim parametrem: „{{Code|Błędy pudełka}}”, wywołującą funkcję błędów o tej nazwie.
=== {{Śródtytuł|p["Przedmiotowa cecha pudełka"]}}{{Code|p["Przedmiotowa cecha pudełka"]}} ===
Funkcja, która bezpośrednio sprawdza, zasadność użycia szablonu z zmianą przestrzeni nazw na przedmiotową, w których została umieszczona ta funkcja, wykorzystuje on w swojej budowie funkcję: {{Code|{{sr|#p["Przedmiotowe błędy pudełka"]|p=Pudełko/Tom IV}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Przedmiotowa cecha pudełka"] = function(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu.
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
return pudelko_potrzebne_modul.Cecha_kontenerowa_szablonowa(frame,"Przedmiotowe błędy pudełka");
</syntaxhighlight>
Funkcja wykorzystywuje funkcję: {{Code|{{sr|#p.Cecha_kontenerowa_szablonowa|p=Pudełko/Potrzebne}}}}, z drugim parametrem: „{{Code|Przedmiotowe błędy pudełka}}”, wywołującą funkcję błędów o tej nazwie.
=== {{Śródtytuł|p["Dyskusyjna cecha pudełka"]}}{{Code|p["Dyskusyjna cecha pudełka"]}} ===
Funkcja, która bezpośrednio sprawdza, zasadność użycia szablonu z zmianą przestrzeni nazw na dyskusji, w których została umieszczona ta funkcja, wykorzystuje on w swojej budowie funkcję: {{Code|{{sr|#p["Dyskusyjne błędy pudełka"]|p=Pudełko/Tom IV}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Dyskusyjna cecha pudełka"] = function(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu.
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
return pudelko_potrzebne_modul.Cecha_kontenerowa_szablonowa(frame,"Dyskusyjne błędy pudełka");
</syntaxhighlight>
Funkcja wykorzystywuje funkcję: {{Code|{{sr|#p.Cecha_kontenerowa_szablonowa|p=Pudełko/Potrzebne}}}}, z drugim parametrem: „{{Code|Dyskusyjne błędy pudełka}}”, wywołującą funkcję błędów o tej nazwie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5ez9spfkqm1nojvkhswxovanq10ohbt
Wikibooks:Moduły/Pudełko/Tom V
4
63499
560304
554203
2026-10-29T13:46:52Z
Persino
2851
560304
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 ogólnego pudełka ==
=== {{Śródtytuł|p["Ogólne pudełko"]}}{{Code|p["Ogólne pudełko"]}} ===
Tą funkcję umieszcza w szablonie, generującym pudełko, do którego może wysuwać zapytania, np. używając: {{s|Szablonowy opis pudełka}}. Używa się go zamiast szablonów komunikatów: {{s|mbox}}, {{s|ambox}}, {{s|tmbox}}, {{s|fmbox}}, {{s|imbox}}, {{s|cmbox}} i {{s|ombox}}, dlatego ten szablon ma więcej funkcji niż dedykowane odpowiednie te szablony szablonów. Chociaż ta funkcja w nagłówku ruchamia te szablony komunikatów w parametrze {{Parametr|nazwa}} lub z parametrem o tej podstawie, tylko po spacji jest numerek. Parametry numerkowe mają pierwszeństwo niż nienumerkowe. Domyślnym komunikatem jest {{s|mbox}}. Tego parametru można nie podawać, a funkcja wtedy użyje ten domyślny.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Ogólne pudełko"]= function(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu.
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
return pudelko_potrzebne_modul.Generalny_kontener_szablonowy(frame);
</syntaxhighlight>
Funkcja do swojego działania wykorzystywuje funkcję do swojego działania: {{Code|{{sr|#p.Generalny_kontener_szablonowy|p=Pudełko/Potrzebne}}}}.
Parametry ramki funkcji tablicy transportu tworzące zwykłe pudełko:
* {{Code|wybor}} - musi być to niepusty ciąg, będacy liczbą całkowitą dodatnią, w przeciwnym wypadku ten parametr jest ignorowany, jest to numerek przy podstawach zmiennych, te zmienne są podane w części '''Parametry szablonu komunikatów''',
* {{Code|nazwa}}, {{Code|nazwa 1}}, {{Code|nazwa 2}},... - nazwa szablonu komunikatu,
Parametry szablonu komunikatów:
* {{Code|grafika}}, {{Code|grafika 1}}, {{Code|grafika 2}},... - nazwa grafiki, parametr komunikatu: {{Parametr|grafika}},
* {{Code|grafika prawo}}, {{Code|grafika prawo 1}}, {{Code|grafika prawo 2}},... - nazwa grafiki w komunikacie po prawej stronie, parametr komunikatu: {{Parametr|grafika prawo}},
* {{Code|typ}}, {{Code|typ 1}}, {{Code|typ 2}},... - charakteryzuje parametr {{Parametr|typ}} w szablonie komunikatu,
* {{Code|klasa}}, {{Code|klasa 1}}, {{Code|klasa 2}},... - zmienna kaskadowych arkuszy stylów CSS, parametr komunikatu: {{Parametr|klasa}},
* {{Code|styl}}, {{Code|styl 1}}, {{Code|styl 2}},... - zmienna kaskadowych arkuszy stylów CSS, parametr komunkatu: {{Parametr|styl}},
* {{Code|styl tekstu}}, {{Code|styl tekstu 1}}, {{Code|styl tekstu 2}},... - zmienna kaskadowych arkuszy stylów CSS, parametr komunikatu: {{Parametr|styl tekstu}},
* {{Code|styl poniżej}}, {{Code|styl poniżej 1}}, {{Code|styl poniżej 2}},... - zmienna kaskadowych arkuszy stylów CSS, parametr komunikatu: {{Parametr|styl poniżej}},
* {{Code|poniżej}}, {{Code|poniżej 1}}, {{Code|poniżej 2}},... - zmienna zawartości w szablonie komunikatu, parametr komunikatu: {{Parametr|poniżej}}.
Parametr tekstu {{Code|tekst}} komunikatu,
* {{Code|treść}}, {{Code|treść 1}}, {{Code|treść 2}},..., {{Code|tekst}}, {{Code|tekst 1}}, {{Code|tekst 2}},... - zmienna zawartości, parametr komunikatu: {{Parametr|tekst}},
* {{Code|parametry}}, {{Code|parametry 1}}, {{Code|parametry 2}},... - parametr dokładany na sam koniec tekstu w parametrze komunikatu: {{Parametr|tekst}},
* {{Code|kategorie}}, {{Code|kategorie 1}}, {{Code|kategorie 2}},... - parametr dokładany na sam koniec tekstu w parametrze komunikatu: {{Parametr|tekst}}, po dodaniu parametru {{Parametr|parametry}} lub jakiegoś jego kolegi, w zależności, czy parametr {{Code|wybor}}, na prawidłową wartość,
Inne jego parametry:
* {{Code|szablon}} - szablon, w którym została wywołana funkcja w nagłówku, opcjonalny
* {{Code|nazwa przestrzeni nazw}} - nazwa przestrzeni nazw, parametr szablonu komunikatu {{s|mbox}}, opcjonalny,
* {{Code|cecha}} - cecha pudełka, w nim jest wywoływana funkcja ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli {{Code|{{m|Pudełko|Błędy pudełka}}}},
* {{Code|alternatywny szablon}} -
* {{Code|warunek niealternatywnego wywołania}} - gdy zwraca wartość niepustą, wtedy nie uruchamia wywołanie w {{Code|alternatywne wywołanie}}, w przeciwnym wypadku jest ona uruchamiana, gdy ta zmienna jest podana,
* {{Code|alternatywne wywołanie}} - alternatywne wywołaniejest uruchamiane, gdy warunek {{Code|warunek niealternatywnego wywołania}}, jest podany i pusty,
* {{Code|bez błędu}} - wtedy nie jest rozwijana cecha w parametrze {{Code|cecha}}, pudełko uruchamiana się jakby nie było żadnego błędu, nawet gdy by normalnie wystąpił,
Parametry ramki funkcji tablicy transportu funkcji komunikatu:
* {{Code|moduł}} - nazwa podułu,
* {{Code|własny komunikat}} - nazwa funkcji, w tym module, jest oo zawartością tekstową {{Code|tekst}} komunikatu.
Parametry ramki funkcji tablicy transportu tworzące system zapytań:
* {{Code|parametry pudełka}} - parametr omówiony na stronie: {{sr|ParametryCechy|p=Pudełko}}.
Szablony z: {{Code|{{m|Pudełko|Ogólne pudełko}}}}, które są przykładami jej użycia znajdują się na stronie: {{Code|{{lk2|Szablony z szablonowym opisem pudełka}}}}.
== Funkcje ogólne ==
=== {{Śródtytuł|p["Tekst pudełka"]}}{{Code|p["Tekst pudełka"]}} ===
Szablon tożsamościowy powtarzający parametr, tekstowy bazowy lub tekstowy numerkowy, tablicy ramki tablicy transportu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Tekst pudełka"] = function (frame,wybor)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu.
Parametry ramki tablicy transportu:
* {{Code|tekst}} lub {{Code|treść}}, {{Code|tekst 1}} lub {{Code|treść 1}}, {{Code|tekst 2}} or {{Code|treść 2}},... - tekst do powtórzenia,
* {{Code|wybor}} - numer zmiennej tekstowej.
Wtedy ciało funkcji tej, czyli jej definicja, w środku, jest:
<syntaxhighlight lang="lua">
return wybor and (frame.args["tekst "..wybor] or frame.args["treść "..wybor]) or (frame.args["tekst"] or frame.args["treść"]) or "";
</syntaxhighlight>
== Funkcje wykorzystywujące kody języka i projektu ==
Parametry podstawowe opisywanych funkcji, tzn. funkcje generujące kody języka: {{Code|{{sr|#p["Kod języka"]|p=Pudełko/Tom V}}}}, projektu: {{Code|{{sr|#p["Kod projektu"]|p=Pudełko/Tom V}}}}, i kluczy projektu: {{Code|{{sr|#p["Klucz projektu"]|p=Pudełko/Tom V}}}}, oraz wyświetlające nazwę strony głównej projektu: {{Code|{{sr|#p["Nazwa strony głównej projektu"]|p=Pudełko/Tom V}}}} i nazwę strony głównej dla dzieci też projektu: {{Code|{{sr|#p["Nazwa strony głównej dla dzieci projektu"]|p=Pudełko/Tom V}}}}, są:
* Parametry funkcji:
** {{Code|frame}} - tablica ramki funkcji tablicy transportu,
** {{Code|i}} - numer jednostki, podaną zamiast {{Code|numer jednostki}}.
* Parametry tablicy ramki funkcji tablicy transportu:
** {{Code|numer jednostki}} - jeżeli nie jest ustawione {{Code|i}}, wtedy ta zmienna się liczy, gdy jest liczbowa,
** {{Code|kod języka}}, {{Code|kod języka 1}}, {{Code|kod języka 2}},... - kody języka strony głównej projektu, bazowy i dla numerów {{Code|i}}.
** {{Code|kod projektu}}, {{Code|kod projektu 1}}, {{Code|kod projektu 2}},... - kody projektów strony głónej projektu, bazowy i dla numerów {{Code|i}},
** {{Code|klucz projektu}}, {{Code|klucz projektu 1}}, {{Code|klucz projektu 2}},... - klucz projektu strony głównej projektu, który jest zespołem kodó języka i projektu, bazowy i dla pewnego {{Code|i}}.
=== Funkcje kodów ===
==== {{Śródtytuł|p["Kod języka"]}}{{Code|p["Kod języka"]}} ====
Zwraca kod języka o {{Code|numer jednostki}}, ewentualnie o {{Code|i}}, jeżeli jest podana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Kod języka"]=function(frame,i)...end;
</syntaxhighlight>
Funkcja wykorzystuje funkcje: {{Code|{{sr|#p["Kod języka tego projektu"]()|p=Pudełko/Tom V}}}} i {{Code|{{sr|#p.Kod_jezyka|p=Pudełko/Pomocne}}}}.
==== {{Śródtytuł|p["Kod projektu"]}}{{Code|p["Kod projektu"]}} ====
Zwraca kod projektu o {{Code|numer jednostki}}, ewentualnie o {{Code|i}}, jeżeli jest podana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Kod projektu"]=function(frame,i)...end;
</syntaxhighlight>
Funkcja wykorzystuje funkcje: {{Code|{{sr|#p["Kod projektu tego projektu"]()|p=Pudełko/Tom V}}}} i {{Code|{{sr|#p.Kod_projektu|p=Pudełko/Pomocne}}}}.
==== {{Śródtytuł|p["Klucz projektu"]}}{{Code|p["Klucz projektu"]}} ====
Zwraca klucz projektu, który jest zespołem kodów języka i projektu, o {{Code|numer jednostki}}, ewentualnie o {{Code|i}}, jeżeli jest podana.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Klucz projektu"]=function(frame,i)...end;
</syntaxhighlight>
Funkcja wykorzystuje funkcje: {{Code|{{sr|#p.Klucz_projektu|p=Pudełko/Pomocne}}}}.
=== Funkcje nazw stron ===
==== {{Śródtytuł|p["Nazwa strony głównej projektu"]}}{{Code|p["Nazwa strony głównej projektu"]}} ====
Funkcja podaje nazwę strony głównej projektu w zależności od języka i rodzaju projektu, według zmiennych o numerze {{Code|i {{=}} 0}} (pozycja bazowe) lub {{Code|i > 0}} (pozycja numerkowa).
Funkcja szuka, według kodów języka i projektu, w w zmiennych szukanych przez funkcję w ramce funkcji, a jeżeli tych tam nie znalazł, to szuka ich względem {{NS|k=d|l=tak}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa strony głównej projektu"]=function(frame,i)...end;
</syntaxhighlight>
Parametry ramki tablicy transportu funkcji:
* {{Code|strona główna projektu}}, {{Code|strona główna projektu 1}}, {{Code|strona główna projektu 2}},... - gdy {{Code|i {{=}} 0}}, to wtedy zwracane jest to pierwsze, w przeciwnym wypadku, jeżeli jest ta zmienna większa od zera, i kody projektu się zgadzają z bieżącym projekterem, to wtedy jest zwracane to pierwsze, a jeżżeli nie, to to następne o odpoiednim numerze {{Code|i > 0}}.
Funkcja wykorzystuje moduł {{Code|{{ld2|Pudełko/Pomocne}}}}.
Funkcja wywołuje: {{Code|{{sr|#p.Wikikody_kontenera|p=Pudełko/Pomocne}}}} oraz {{Code|{{sr|#p.Nazwa_strony_bazowej_projektu_ze_zmiennej|p=Pudełko/Pomocne}}}} lub {{Code|{{sr|#p.Nazwa_strony_bazowej_projektu_z_wikidanych()|p=Pudełko/Pomocne}}}}.
Jeżeli funkcja nie znalazła zmiennej w ramce, dotyczące strony głównej projektu, to szukany jest odpowiednik według {{NS|k=d|l=tak}} na podstawie kodów języka i projektu.
==== {{Śródtytuł|p["Nazwa strony głównej dla dzieci projektu"]}}{{Code|p["Nazwa strony głównej dla dzieci projektu"]}} ====
Funkcja podaje nazwę strony głównej dla dzieci projektu w zależności od języka i rodzaju projektu, według zmiennych o numerze {{Code|i {{=}} 0}} (pozycja bazowe) lub {{Code|i > 0}} (pozycja numerkowa).
Funkcja szuka, według kodów języka i projektu, w w zmiennych szukanych przez funkcję w ramce funkcji, a jeżeli tych tam nie znalazł, to szuka ich względem {{NS|k=d|l=tak}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa strony głównej dla dzieci projektu"]=function(frame,i)...end;
</syntaxhighlight>
Parametry ramki tablicy transportu funkcji:
* {{Code|strona główna dla dzieci}}, {{Code|strona główna dla dzieci 1}}, {{Code|strona główna dla dzieci 2}},... - gdy {{Code|i {{=}} 0}}, to wtedy zwracane jest to pierwsze, w przeciwnym wypadku, jeżeli jest ta zmienna większa od zera, i kody projektu się zgadzają z bieżącym projekterem, to wtedy jest zwracane to pierwsze, a jeżżeli nie, to to następne o odpoiednim numerze {{Code|i > 0}}.
Funkcja wykorzystuje moduł {{Code|{{ld2|Pudełko/Pomocne}}}}.
Funkcja wywołuje: {{Code|{{sr|#p.Wikikody_kontenera|p=Pudełko/Pomocne}}}} oraz {{Code|{{sr|#p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej|p=Pudełko/Pomocne}}}} lub {{Code|{{sr|#p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych()|p=Pudełko/Pomocne}}}}.
Jeżeli funkcja nie znalazła zmiennej w ramce, dotyczące strony głównej dla dzieci projektu, to szukany jest odpowiednik według {{NS|k=d|l=tak}} na podstawie kodów języka i projektu.
== Funkcje wiki ==
Funkcje: {{Code|{{sr|#p["Inny niż język bieżący wiki"]|p=Pudełko/Tom V}}}}, {{Code|{{sr|#p["Inne niż lokalne wiki"]|p=Pudełko/Tom V}}}} i {{Code|{{sr|#p["Inne niż bieżące wiki"]|p=Pudełko/Tom V}}}}, wykorzystują funkcję: {{Code|{{sr|#p.Analiza_interwiki_czy_projekt_aktualny|p=Pudełko/Pomocne}}}}.
Te funkcje potrzebują parametru {{Parametr|wyspecjalizowana|tak}}, by można było podać parametry w ramce dziecka w rodzicu, w przeciwnym wypadku liczą się parametry rodzica.
=== {{Śródtytuł|p["Inny niż język bieżący wiki"]}}{{Code|p["Inny niż język bieżący wiki"]}} ===
Sprawdza, czy wśród zestawu policzonych kodów, znajduje się język inny niż bieżącego projektu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Inny niż język bieżący wiki"]=function(frame)...end;
</syntaxhighlight>
=== {{Śródtytuł|p["Inne niż lokalne wiki"]}}{{Code|p["Inne niż lokalne wiki"]}} ===
Sprawdza, czy wśród zestawu policzonych kodów, znajduje się projekt inny niż bieżącego projektu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Inne niż lokalne wiki"]=function(frame)...end;
</syntaxhighlight>
=== {{Śródtytuł|p["Inne niż bieżące wiki"]}}{{Code|p["Inne niż bieżące wiki"]}} ===
Sprawdza, czy wśród zestawu policzonych kodów, znajduje się, projekt i jego język, inny niż bieżącego projektu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Inne niż bieżące wiki"]=function(frame)...end;
</syntaxhighlight>
== Funkcje typów parametrów, czy podane je ==
Funkcje: {{Code|{{sr|#p["Podano parametry nienazwane"]|p=Pudełko/Tom V}}}}, {{Code|{{sr|#p["Podano parametry numerowane"]|p=Pudełko/Tom V}}}} i {{Code|{{sr|#p["Podano parametry nazwane"]|p=Pudełko/Tom V}}}}, wykorzystują funkcję do zbierania parametrów: {{Code|{{sr|#p.PobierzArgsParametry|p=Parametry}}}}.
Funkcje potrzebują parametru {{Parametr|wyspecjalizowana|tak}}, by parametry można było podawać w ramce.
=== {{Śródtytuł|p["Podano parametry nienazwane"]}}{{Code|p["Podano parametry nienazwane"]}} ===
Sprawdza, czy w otrzymanym zestawioe parametrów z tablicy ramki dziecka, czy rodzica, w zależności od omówionego parametru, czy jest jakiś parametr nienazwany.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Podano parametry nienazwane"]=function(frame)...end;
</syntaxhighlight>
=== {{Śródtytuł|p["Podano parametry numerowane"]}}{{Code|p["Podano parametry numerowane"]}} ===
Sprawdza, czy w otrzymanym zestawioe parametrów z tablicy ramki dziecka, czy rodzica, w zależności od omówionego parametru, czy jest jakiś parametr numerowany
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Podano parametry numerowane"]=function(frame)...end;
</syntaxhighlight>
=== {{Śródtytuł|p["Podano parametry nazwane"]}}{{Code|p["Podano parametry nazwane"]}} ===
Sprawdza, czy w otrzymanym zestawie parametrów z tablicy ramki dziecka, czy rodzica, w zależności od omówionegpo parametru, czy jest jakiś parametr nazwany.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Podano parametry nazwane"]=function(frame)...end;
</syntaxhighlight>
== Funkcje kodów tego projektu ==
=== {{Śródtytuł|p["Kod języka tego projektu"]}}{{Code|p["Kod języka tego projektu"]}} ===
Funkcja zwraca kod języka tego projektu, czyli {{Code|pl}}.
Definicja funkcji wraz z jej ciałem:
<syntaxhighlight lang="lua">
p["Kod języka tego projektu"]=function(frame)
return "pl"
end;
</syntaxhighlight>
Parametry ramki tablicy transportu {{Code|frame}} nie wpływają na wartość zwracaną.
=== {{Śródtytuł|p["Kod projektu tego projektu"]}}{{Code|p["Kod projektu tego projektu"]}} ===
Funkcja zwraca kod projektu tego projektu, czyli {{Code|b}}.
Definicja funkcji wraz z jej ciałem:
<syntaxhighlight lang="lua">
p["Kod projektu tego projektu"]=function(frame)
return "b";
end;
</syntaxhighlight>
Parametry ramki tablicy transportu {{Code|frame}} nie wpływają na wartość zwracaną.
=== {{Śródtytuł|p["Klucz projektu tego projektu"]}}{{Code|p["Klucz projektu tego projektu"]}} ===
Funkcja zwraca klucz projektu tego projektu, czyli: {{Code|pl:b}}. Funkcja do tego celu wykorzystuje: {{Code|{{sr|#p["Kod języka tego projektu"]|p=Pudełko/Tom V}}}} i {{Code|{{sr|#p["Kod projektu tego projektu"]|p=Pudełko/Tom V}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Klucz projektu tego projektu"]=function(frame)...end;
</syntaxhighlight>
Parametry ramki tablicy transportu {{Code|frame}} nie wpływają na wartość zwracaną.
== Funkcje stron ==
=== {{Śródtytuł|p["Strona główna tego projektu"]}}{{Code|p["Strona główna tego projektu"]}} ===
Funkcja zwraca adres strony głównej ustawionej na projekcie. Jeżeli nie znalezione tego wpisu w komunikatach, w przestrzeni nazw {{Np|MediaWiki|link=tak}}, to zwracana jest jego wartość domyślna, czyli: „{{Code|Wikibooks:Strona główna}}”, w przeciwnym wypadku jest z tego zwracana wartość przy pomocy funkcji {{Code|frame:preprocess}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Strona główna tego projektu"] = function(frame)...end;
</syntaxhighlight>
=== {{Śródtytuł|p["Strona główna dla dzieci tego projektu"]}}{{Code|p["Strona główna dla dzieci tego projektu"]}} ===
Funkcja zwraca wartość: „{{Code|Wikijunior:Strona główna}}”, strony głównej dla dzieci.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Strona główna dla dzieci tego projektu"] = function(frame)...end;
</syntaxhighlight>
== Funkcje nazw stron drugiej wersji ==
Funkcje do liczenia nazw stron, wykorzystuje do tego celu {{NS|k=d|l=tak}}.
=== {{Śródtytuł|p["Nazwa strony głównej projektu 2"]}}{{Code|p["Nazwa strony głównej projektu 2"]}} ===
Strona na podstawie podanego w ramce w parametrze {{Code|1}} (kodu języka) i {{Code|2}} (kodu projektu) liczy nazwę strony głównej projektu na innym projekcie siostrzanym. Jest to druga wersja funkcji: {{Code|{{sr|#p["Nazwa strony głównej projektu"]|p=Pudełko/Tom V}}}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa strony głównej projektu 2"] = function(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} = tablica ramki funkcji tablicy transportu.
Parametry ramki tablicy transportu:
* {{Code|1}} i {{Code|2}} - kolejno kod języka i kod projektu, z którego jest liczona na projektach {{NS|k=b|l=tak}}, nazwa strony głównej projektu w projekcie i jego języku reprezentowanym przez podane te kody.
Funkcje wykorzystuje: {{Code|{{sr|#p.Nazwa_strony_bazowej_projektu_z_wikidanych()|p=Pudełko/Pomocne}}}}, aby policzyć tego nazwę.
=== {{Śródtytuł|p["Nazwa strony głównej dla dzieci projektu 2"]}}{{Code|p["Nazwa strony głównej dla dzieci projektu 2"]}} ===
Strona na podstawie podanego w ramce w parametrze {{Code|1}} (kodu języka) liczy nazwę strony głównej dla dzieci projektu na tym samym projekcie niż bieżący. Jest to druga wersja funkcji: {{Code|{{sr|#p["Nazwa strony głównej dla dzieci projektu"]|p=Pudełko/Tom V}}}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa strony głównej dla dzieci projektu 2"] = function(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} = tablica ramki funkcji tablicy transportu.
Parametry ramki tablicy transportu:
* {{Code|1}} - kod języka, na którym jest liczona na projektach: {{NS|k=b|l=tak}}, nazwa strony dla dzieci projektu w języku reprezentowanym przez podany ten kod.
Funkcje wykorzystuje: {{Code|{{sr|#p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych()|p=Pudełko/Pomocne}}}}, aby policzyć tego nazwę.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
oxlveqho38uh39suuanxa9wzg88r9rx
Wikibooks:Moduły/Pudełko/Pomocne
4
63504
560305
554204
2026-10-29T13:59:42Z
Persino
2851
560305
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Pudełko/Pomocne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.Nazwa_strony_bazowej_projektu_z_wikidanych}}{{Code|p.Nazwa_strony_bazowej_projektu_z_wikidanych}} ==
Funkcja liczy odpowiednik strony głównej projektu, względem polskiego {{NS|l=tak|p=d}}, na innych projektach. Do tego celu wykorzystuje bazę danych {{NS|k=d|l=tak}}.
Funkcja jest wykorzystywana w kodzie funkcji: {{Code|{{sr|#p["Nazwa strony głównej projektu"]|p=Pudełko/Tom V}}}} i {{Code|{{sr|#p["Nazwa strony głównej projektu 2"]|p=Pudełko/Tom V}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|kod języka}} i {{Code|kod projektu}} - kolejno kody języka i projektu, na którym ma liczyć odpowiednik strony głównej.
Ta funkcja wykorzystywuje funkcje do liczenia kodów tego projektu, tzn. języka: {{Code|{{sr|#p["Kod języka tego projektu"]|p=Pudełko/Tom V}}}}, i projektu: {{Code|{{sr|#p["Kod projektu tego projektu"]|p=Pudełko/Tom V}}}}, jak i inne funkcje nazw, jak: {{Code|{{sr|#m["PEŁNANAZWASTRONY"]|p=Nazwy/Tom II}}}}. Funkcja również wykorzystywuje tablice funkcji {{Code|mw.loadData}}, tzn. modułu {{Code|{{ld2|Wiki/interwiki}}}}.
== {{Śródtytuł|p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych}}{{Code|p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych}} ==
Funkcja liczy odpowiednik strony głównej dla dzieci projektu, względem polskiego {{NS|l=tak|pk=d}}, na innych projektach. Do tego celu wykorzystuje bazę danych {{NS|k=d|l=tak}}.
Funkcja jest wykorzystywana w kodzie funkcji: {{Code|{{sr|#p["Nazwa strony głównej dla dzieci projektu"]|p=Pudełko/Tom V}}}} i {{Code|{{sr|#p["Nazwa strony głównej dla dzieci projektu 2"]|p=Pudełko/Tom V}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|kod_jezyka}} - kod języka odpowiednika językowego projektu {{NS|l=tak}}, dla którego liczymy odpowiednik strony głównej dla dzieci.
Ta funkcja wykorzystywuje funkcje do liczenia kodów tego projektu, tzn. języka: {{Code|{{sr|#p["Kod języka tego projektu"]|p=Pudełko/Tom V}}}}, i projektu: {{Code|{{sr|#p["Kod projektu tego projektu"]|p=Pudełko/Tom V}}}}, jak i inne funkcje nazw, jak: {{Code|{{sr|#m["PEŁNANAZWASTRONY"]|p=Nazwy/Tom II}}}}.
== {{Śródtytuł|p.Nazwa_strony_bazowej_projektu_ze_zmiennej}}{{Code|p.Nazwa_strony_bazowej_projektu_ze_zmiennej}} ==
Funkcja liczy odpowiednik strony głównej projektu, względem zmiennych w funkcji ramki {{Code|frame}}, polskiego {{NS|l=tak|pk=d}}, uzyskaną tylko względem kodów, bez liczenia jego odpowiednich na innym przy pomocy {{NS|k=d|l=tak}}, tylko bezpośrednio podanych do funkcji w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja jest wykorzystywana w kodzie funkcji: {{Code|{{sr|#p["Nazwa strony głównej projektu"]|p=Pudełko/Tom V}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - numer jednostki, bazowej, jeśli {{Code|i {{=}} 0}}, i numerkowej {{Code|i > 0}},
* {{Code|kod języka}} i {{Code|kod projektu}} - kod języka i kod projektu danego projektu, na którym chcemy liczyćnazwę strony głównej projektu.
Parametry tablicy ramki funkcji tablicy transportu:
* {{Code|strona główna projektu}} - nazwa strony głównej na polskim projekcie {{NS|l=tak|pk=d}},
* {{Code|strona główna projektu 1}}, {{Code|strona główna projektu 2}}, {{Code|strona główna projektu 3}},... - nazwa strony głównej projektu na jakimś projekcie {{lpg|Wikimedia Foundation}} względem podanych kodów języka i projektu.
Funkcja wykorzystuje do swojej budowy: {{Code|{{sr|#p["Kod języka tego projektu"]|p=Pudełko/Tom V}}}} i {{Code|{{sr|#p["Kod projektu tego projektu"]|p=Pudełko/Tom V}}}}, jak i inne, czyli w tym przypadku funkcje nazw: {{Code|{{sr|#m["PEŁNANAZWASTRONY"]|p=Nazwy/Tom II}}}}.
Gdy {{Code|i {{=}} 0}}, wtedy funkcja zwraca wartość zmiennej {{Code|strona główna projektu}}, a jeśli {{Code|i > 0}}, a jeśli kody języka i projektu wskazująna projekt bieżący, to wtedy też jest zwracana ta zmienna, w przeciwnym wypadku otrzymujemy również tą zmienną, ale z numerkiem po spacji.
== {{Śródtytuł|p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej}}{{Code|p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej}} ==
Funkcja liczy odpowiednik strony głównej dla dzieci, względem zmiennych w funkcji ramki {{Code|frame}}, polskiego {{NS|l=tak|pk=d}}, uzyskaną tylko względem kodów, bez liczenia jego odpowiednich na innym przy pomocy {{NS|k=d|l=tak}}, tylko bezpośrednio podanych do funkcji w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja jest wykorzystywana w kodzie funkcji: {{Code|{{sr|#p["Nazwa strony głównej dla dzieci projektu"]|p=Pudełko/Tom V}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - numer jednostki, bazowej, jeśli {{Code|i {{=}} 0}}, i numerkowej {{Code|i > 0}},
* {{Code|kod języka}} przy kodzie projektu {{Code|b}} - kod języka przy tym kodzie projektu danego projektu, na którym chcemy liczyćnazwę strony głównej projektu.
Parametry tablicy ramki funkcji tablicy transportu:
* {{Code|strona główna dla dzieci}} - nazwa strony głównej na polskim projekcie {{NS|l=tak|p=d}},
* {{Code|strona główna dla dzieci 1}}, {{Code|strona główna dla dzieci 2}}, {{Code|strona główna dla dzieci 3}},... - nazwa strony głównej dla dzieci na jakimś projekcie {{lpg|Wikimedia Foundation}} względem podanych kodów języka przy kodzie projektu {{Code|b}}.
Funkcja wykorzystuje do swojej budowy: {{Code|{{sr|#p["Kod języka tego projektu"]|p=Pudełko/Tom V}}}} i {{Code|{{sr|#p["Kod projektu tego projektu"]|p=Pudełko/Tom V}}}}, jak i inne, czyli w tym przypadku funkcje nazw: {{Code|{{sr|#m["PEŁNANAZWASTRONY"]|p=Nazwy/Tom II}}}}.
Gdy {{Code|i {{=}} 0}}, wtedy funkcja zwraca wartość zmiennej {{Code|strona główna dla dzieci}}, a jeśli {{Code|i > 0}}, a jeśli kody języka i projektu wskazująna projekt bieżący, to wtedy też jest zwracana ta zmienna, w przeciwnym wypadku otrzymujemy również tą zmienną, ale z numerkiem po spacji.
== {{Śródtytuł|p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw}}{{Code|p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw}} ==
Funkcja liczy na podstawie podanej przestrzeni nazw normalną (bez transformacji ewentualnie inną), przedmiotową lub dyskusji, ale w postaci kanonicznej, dla danego projektu o danym kodzie języka i projektu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, kod_przestrzen_normalna_przedmiotowa_lub_dyskusji,kod_jezyka,kod_projektu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|nazwa_przestrzeni_nazw}} - nazwa przestrzeni nazw na danym projekcie siostrzanym i językowym,
* {{Code|kod_przestrzen_normalna_przedmiotowa_lub_dyskusji}} - {{Code|0}} - liczy przestrzeń nazwnormalną, {{Code|1}} - przedmiotową, {{Code|2}} - dyskusji, inna wartość, liczy jak przy tym kodzie, jak przy pierwszym,
* {{Code|kod_jezyka}} i {{Code|kod_projektu}} - kod języka i projektu, na którym ma liczyć nazwę przestrzeni nazw.
Te funkcje liczą, jaki jest projekt bieżący, czy nie, na tej podstawie używa funkcji: {{Code|{{sr|#p["CzyBieżącaWiki"]|p=Wiki}}}}, co wtedy, jeśli bieżący, to wtedy są wykorzystywane kody jezyka i projektu do liczenia przeróżnych nazw funkcjami nazw.
Funkcja jest wykorzystywana przy budowie funkcji: {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, a ona jest używana przy implementacji w wersji pierwszej: {{Code|{{sr|#p["Typ jednostki"]|p=Pudełko/Tom III}}}}, {{Code|{{sr|#p["Przedmiotowy typ jednostki"]|p=Pudełko/Tom III}}}} i {{Code|{{sr|#p["Dyskusyjny typ jednostki"]|p=Pudełko/Tom III}}}}, drugiej: {{Code|{{sr|#p["Typ jednostki 2"]|p=Pudełko/Tom III}}}}, {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"]|p=Pudełko/Tom III}}}} i {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"]|p=Pudełko/Tom III}}}}, oraz trzeciej: {{Code|{{sr|#p["Typ jednostki 3"]|p=Pudełko/Tom III}}}}, {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"]|p=Pudełko/Tom III}}}} i {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"]|p=Pudełko/Tom III}}}}, czyli do liczenia typu jednostki normalną (bez transformacji), przedmiotową, czy dyskusji, co te funkcje obrazują, co też wynika na podstawie ich nazw.
Funkcja sprawdza, czy to jest projekt bieżący, czy nie, na podstawie tego pierwszego liczy wzgledem: {{Code|{{sr|#m.Np|p=Nazwy/Tom I}}}}, drugiego: {{Code|{{sr|#m.NpDane|p=Nazwy/Tom I}}}}. Przy tym drugim funkcja wykorzytuje kody języka {{Code|kod_jezyka}} i projektu {{Code|kod_projektu}}.
== {{Śródtytuł|p.Nazwa_przestrzeni_nazw}}{{Code|p.Nazwa_przestrzeni_nazw}} ==
Funckja wyznacza nazwę przestrzeni nazw niekanoniczną normalną (bez przekształacania) lub przewróconą na przedmiotową lub dyskusji, a jeżeli podana nazwa przestrzeni nazw jest nieprawidłowa, to bierze jej domyślną, na podstawie jej pierwszego parametru ramki {{Code|frame.args}}, czyli o numerze {{Code|1}}, jeżeli takowe ustawienie włączono na podstawie jej trzeciego argumentu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funnkcji tablicy transportu,
* {{Code|kod_liczbowy_przestrzeni_nazw}} - kod {{Code|1}} - kod wyznaczania wersji przestrzeni przedmiotowej, {{Code|2}} - dyskusji, inne kody przedstawiają przestrzeń nazw normalną, które nie transformują nazwy przestrzeni nazw, tylko ją liczą,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - wartość {{Code|nil}}, czy {{Code|true}} - wtedy jest liczona nazwa przestrzeni nazw na podstawie parametru {{Code|frame.args[1]}}, a przy wartości {{Code|false}} już tak nie jest,
* {{Code|numer_jednostki}} - wartość numeru jednostki, możliwe wartości: {{Code|0}} - liczy dla tej bazowej, inne wartości {{Code|> 0}}, tą numerkową.
Nazwa przestrzeni nazw w funkcji nagłówkujest liczona z parametrów przestrzennych, nic z nazwy jednostki.
Funkcja jest używana do budowy głównych funkcji pudełka w module: {{Code|{{m|Pudełko}}}}, czyli: {{Code|{{sr|#p["Nazwa przestrzeni nazw"]|p=Pudełko/Tom I}}}}, {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"]|p=Pudełko/Tom I}}}}, które liczą niekanoniczne nazwy przestrzeni nazw: normalną (bez transformacji) lub przetransformowaną na przedmiotową i dyskusji.
Wartości z ramki, jakimś numerze, tzn. {{Code|numer_jednostki}} są uzyskiwane za pomocą tej wartości.
Funkcja wykorzystywuje do liczenia nazwy przestrzeni nazw podaną do ramki według zmiennych, tzn. {{Code|{{sr|#p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze|p=Pudełko/Pomocne}}}}, a jeśli nie ma tej wartości, to z: {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame|p=Pudełko/Pomocne}}}}. Parametry tablicy ramki tych funkcji tablicy transportu są takie same jak dla funkcji w nagłówku.
Funkcja korzysta z funkcji nazw dla kodu {{Code|kod_liczbowy_przestrzeni_nazw}}, czyli {{Code|1}}: {{Code|{{sr|#m["PRZEDMIOTOWAPRZESTRZEŃ"]|p=Nazwy/Tom II}}}}, {{Code|2}}: {{Code|{{sr|#m["PRZESTRZEŃDYSKUSJI"]|p=Nazwy/Tom II}}}}, inna wartość: {{Code|{{sr|#m["NAZWAPRZESTRZENI"]|p=Nazwy/Tom II}}}}. Funkcja liczy przy pomocy: {{Code|{{sr|#p["CzyBieżącaWiki"]|p=Wiki}}}}, czy projekt jest bieżący, czy nie, jeśli ten drugi, to wtedy są wykorzystywane kody języka i projektu uzyskane z funkcji: {{Code|{{sr|#p.Wikikody_kontenera|p=Pudełko/Pomocne}}}}.
== {{Śródtytuł|p.Nazwa_przestrzeni_nazw_2}}{{Code|p.Nazwa_przestrzeni_nazw_2}} ==
Funkcja wyznacza nazwę przestrzeni nazw niekanoniczną normalną (bez przekształcania) ale liczącą w wersji drugiej, a jeżeli podana nazwa przestrzeni nazw jest nieprawidłowa, to bierze jej domyślną, na podstawie jej pierwszego parametru ramki {{Code|frame.args}}, czyli o numerze {{Code|1}}, jeżeli takowe ustawienie włączono na podstawie jej drugiego argumentu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funnkcji tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - wartość {{Code|nil}}, czy {{Code|true}} - wtedy jest liczona nazwa przestrzeni nazw na podstawie parametru {{Code|frame.args[1]}}, a przy wartości {{Code|false}} już tak nie jest,
* {{Code|i}} - wartość numeru jednostki, możliwe wartości: {{Code|0}} - liczy dla tej bazowej, inne wartości {{Code|> 0}}, tą numerkową.
Funkcja jest używana do budowy głównych funkcji pudełka w module: {{Code|{{m|Pudełko}}}}, czyli: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}.
Funkcja wykorzystywuje do liczenia nazwy przestrzeni nazw podaną do ramki według zmiennych, tzn. {{Code|{{sr|#p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze|p=Pudełko/Pomocne}}}}, a jeśli nie ma tej wartości, to z: {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame|p=Pudełko/Pomocne}}}}. Parametry tablicy ramki tych funkcji tablicy transportu są takie same jak dla funkcji w nagłówku.
Funkcja sprawdza, czy kody z ramki {{Code|frame}} wskazująna projekt bieżacy, czy nie, funkcją: {{Code|{{sr|#p["CzyBieżącaWiki"]|p=Wiki}}}}.
Funkcja dla projektu bieżącego wykorzystuje: {{Code|{{sr|#mNp|p=Nazwy/Tom I}}}}, niebieżącego: {{Code|{{sr|#mNpDane|p=Nazwy/Tom I}}}} do policzenia nazwy przestrzeni nazw z parametrów przestrzennych, a jeżeli owo nie zostało podane, to jest liczona z tej aktualnej bieżacej strony. Do policzenia nazwy jednostki używana jest: {{Code|{{sr|#p["NazwaStronyAdresu"]|p=Html}}}}, aby z nazwy jednostki z parametrami i nagłówkiem wydzielić, to co jest odpowiedzialne za zwykłą nazwę strony.
Funkcja korzysta z funkcji modułu nazw: {{Code|{{sr|#m["NAZWAPRZESTRZENI"]|p=Nazwy/Tom II}}}}, do liczenia nazwy strony z uzyskanej nazwy jednostki, jeżeli nazwa przestrzeni jest wartością pustą, w przeciwnym wypadku liczona jest ona z parametrów przestrzennych. Też jest czasami wykorzystywane jest: {{Code|{{sr|#m["NAZWASTRONY"]|p=Nazwy/Tom II}}}}, w celu policzenia nazwy jednostki (strony) aktualnego projektu, ewentualnie przy pomocy kodów, jeśli projekt jest niebieżący, jeślinie podano nazwy jednostki do parametrów ramki {{Code|frame}}.
Nazwa jednostki może zaczynać się od dwukropka, czyli: {{Code|:}}, wtedy nazwa jednostki jest tranktowana, jako pełna nazwa strony, więc z niego jest wyznaczana nazwa przestrzeni nazw,niezaleznie, czy wyznaczona nazwa przestrzeni nazw z parametrów przestrzennychjest pusta, czy nie.
== {{Śródtytuł|p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2}}{{Code|p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2}} ==
Funkcja wyznacza nazwę przestrzeni nazw niekanoniczną z transformacją na przedmiotową lub dyskusji, ale liczącą w wersji drugiej, a jeżeli podana nazwa przestrzeni nazw jest nieprawidłowa, to bierze jej domyślną, na podstawie jej pierwszego parametru ramki {{Code|frame.args}}, czyli o numerze {{Code|1}}, jeżeli takowe ustawienie włączono na podstawie jej drugiego argumentu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funnkcji tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - wartość {{Code|nil}}, czy {{Code|true}} - wtedy jest liczona nazwa przestrzeni nazw na podstawie parametru {{Code|frame.args[1]}}, a przy wartości {{Code|false}} już tak nie jest,
* {{Code|i}} - wartość numeru jednostki, możliwe wartości: {{Code|0}} - liczy dla tej bazowej, inne wartości {{Code|> 0}}, tą numerkową,
* {{Code|typ}} - wartościami tego są {{Code|przedmiotowa}}, do liczenia nazwy przestrzeni nazw przedmiotowej, {{Code|dyskusja}}, tutaj dyskusji.
Funkcja jest używana do budowy głównych funkcji pudełka w module: {{Code|{{m|Pudełko}}}}, czyli: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"]|p=Pudełko/Tom I}}}}.
Funkcja wyznacza nazwę przestrzeni nazw z transformacją na przedmiotową lub dyskusji kolejno według: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"]|p=Pudełko/Tom I}}}}, do liczenia przekształconej przestrzeni nazw.
A gdy nazwa przestrzeni nazw z parametrów przestrzennych, wyliczoną z poprzedniej odpowiedniej funkcji wstępnej, wskazuje na przestrzeń główną, wtedy ta funkcja wykorzystywuje do liczenia przestrzeni przedmiotowej twory funkcyjne: {{Code|{{sr|#m["PRZEDMIOTOWAPRZESTRZEŃ"]|p=Nazwy/Tom II}}}}, albo {{Code|{{sr|#m["PRZESTRZEŃDYSKUSJI"]|p=Nazwy/Tom II}}}} do dyskusji, z tablicą zbudowaną na podstawie uzyskanej z parametrów nazwy jednostki wyliczoną z: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}, i kodów języka i projektu, w przeciwnym wypadku oblicza z parametrów przestrzennych według funkcji: {{Code|{{sr|#m.Np|p=Nazwy/Tom I}}}}, dla projektu bieżącego, lub przy: {{Code|{{sr|#m.NpDane|p=Nazwy/Tom I}}}}, dla innego.
Funkcja sprawdza, czy projekt jest bieżący, czy nie, do tego celu wykorzystywuje: {{Code|{{sr|#p["CzyBieżącaWiki"]|p=Wiki}}}}, przy pomocy ktorej jest wybierane, czy {{Code|Np}}, a może to: {{Code|NpDane}}, w której są wykorzystywane odpowiednie kody języków i projektów.
== {{Śródtytuł|p.Kod_jezyka}}{{Code|p.Kod_jezyka}} ==
Funkcja liczy kody języka na podstawie podanych parametrów do ramki i dalszych parametrów jako argumenty tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Kod_jezyka(frame,i,wartosc_domyslna)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - numer kodu języka {{Code|{{=}} 0}}, bazowy, i {{Code|> 0}}, numerkowy.
* {{Code|wartosc_domyslna}} - wartość domyślna równą kodowi języka, jeżeli nie podano żadnego tego kodu o tym numerze według {{Code|i}}.
Parametry tablicy ramki funkcji tablicy transportu:
* {{Code|kod języka 1}} lub {{Code|kod języka}}, {{Code|kod języka 2}}, {{Code|kod języka 3}},... - kody języka podane do ramki, dla {{Code|i{{=}}1}}, wybierany jest kod bez numeru, a jeżeli on nie istnieje to nuerem jeden, a w dalszym wypadku {{Code|>1}}, jest wybierane to z tym numerkiem.
Jeżeli {{Code|i {{=}} 0}} funkcja liczy wartość funkcji: {{Code|{{sr|#p["Kod języka tego projektu"]|p=Pudełko/Tom V}}}}, która jest zwracana, dla {{Code|i > 0}} liczy na podstawie podanych kodów ramki.
Funkcja jest używana do budowy funkcji: {{Code|{{sr|#p.Klucz_projektu|p=Pudełko/Pomocne}}}}.
Funnkcja zwraca nazwę pojedynczego kodu języka.
== {{Śródtytuł|p.Kod_projektu}}{{Code|p.Kod_projektu}} ==
Funkcja liczy kody projektu na podstawie podanych parametrów do ramki i dalszych parametrów jako argumenty tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Kod_projektu(frame,i,wartosc_domyslna)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - numer kodu języka {{Code|{{=}} 0}}, bazowy, i {{Code|> 0}}, numerkowy.
* {{Code|wartosc_domyslna}} - wartość domyślna równą kodowi projektu, jeżeli nie podano żadnego tego kodu o tym numerze według {{Code|i}}.
Parametry tablicy ramki funkcji tablicy transportu:
* {{Code|kod projektu 1}} lub {{Code|kod projektu}}, {{Code|kod projektu 2}}, {{Code|kod projektu 3}},... - kody języka podane do ramki, dla {{Code|i{{=}}1}}, wybierany jest kod bez numeru, a jeżeli on nie istnieje to nuerem jeden, a w dalszym wypadku {{Code|>1}}, jest wybierane to z tym numerkiem.
Jeżeli {{Code|i {{=}} 0}} funkcja liczy wartość funkcji: {{Code|{{sr|#p["Kod projektu tego projektu"]|p=Pudełko/Tom V}}}}, która jest zwracana, dla {{Code|i > 0}} liczy na podstawie podanych kodów ramki.
Funkcja jest używana do budowy funkcji: {{Code|{{sr|#p.Klucz_projektu|p=Pudełko/Pomocne}}}}.
Funnkcja zwraca nazwę pojedynczego kodu projektu.
== {{Śródtytuł|p.Klucz_projektu}}{{Code|p.Klucz_projektu}} ==
Funkcja liczy klucz projektu na podstawie podanych parametrów ramki do funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - numer kodu języka {{Code|{{=}} 0}}, bazowy, i {{Code|> 0}}, numerkowy.
* {{Code|wartosc_domyslna_jezyka}} - wartość domyślna równą kodowi języka, jeżeli nie podano żadnego tego kodu o tym numerze według {{Code|i}},
* {{Code|wartosc_domyslna_projektu}} - wartość domyślna równą kodowi projektu, jeżeli nie podano żadnego tego kodu o tym numerze powyżej,
Parametry tablicy ramki funkcji tablicy transportu:
* {{Code|klucz projektu 1}} lub {{Code|klucz projektu}}, {{Code|klucz projektu 2}}, {{Code|klucz projektu 3}},... - kody języka podane do ramki, dla {{Code|i{{=}}1}}, wybierany jest kod bez numeru, a jeżeli on nie istnieje to nuerem jeden, a w dalszym wypadku {{Code|>1}}, jest wybierane to z tym numerkiem.
Dla {{Code|i {{=}} 0}} funkcja zwraca wartość {{Code|nil}}, a dla {{Code|i > 0}} liczy zwracaną wartość na podstawie parametrów ramki tego argumentu z {{Code|i}}.
Funkcja jest używana do budowy funkcji: {{Code|{{sr|#p.Wikikody_kontenera|p=Pudełko/Pomocne}}}}.
Funnkcja zwraca nazwę pojedynczego klucza projektu.
== {{Śródtytuł|p.Wikikody_kontenera}}{{Code|p.Wikikody_kontenera}} ==
Funkcja liczy kod języka i kod projektu na podstawie podanych parametrów kodów jezyka i projektu oraz kluczy projektu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - numer kodu języka {{Code|{{=}} 0}}, bazowy, i {{Code|> 0}}, numerkowy.
* {{Code|wartosc_domyslna_jezyka}} - wartość domyślna równą kodowi języka, jeżeli nie podano żadnego tego kodu o tym numerze według {{Code|i}},
* {{Code|wartosc_domyslna_projektu}} - wartość domyślna równą kodowi projektu, jeżeli nie podano żadnego tego kodu o tym numerze powyżej,
Parametry tablicy ramki funkcji tablicy transportu sa wykorzystywane kolejno w funkcjach: {{Code|{{sr|#p.Kod_jezyka|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Kod_projektu|p=Pudełko/Pomocne}}}} i {{Code|{{sr|#p.Klucz_projektu|p=Pudełko/Pomocne}}}}.
Policzone kody i klucze przy pomocy tych ostatnich funkcji są wsadzane do innej funkcji: {{Code|{{sr|#p.KodyWiki|p=Wiki}}}}. Ta funkcja zwraca kod języka i projektu, jako dwa oddzielne kolejne parametry, one owe są zwracane przez tą funkcję.
Funkcja jest używana do budowy funkcji w module {{ld2|Pudełko/Pomocne}}: {{Code|{{sr|#p.Nazwa_przestrzeni_nazw|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Nazwa_jednostki|p=Pudełko/Pomocne}}}} i {{Code|{{sr|#p.Jaka_nazwa_jednostki|p=Pudełko/Pomocne}}}}, również {{ld2|Pudełko/Potrzebne}}: {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe|p=Pudełko/Potrzebne}}}}, a dalej {{ld2|Pudełko}}: {{Code|{{sr|#p["Nazwa strony głównej projektu"]|p=Pudełko/Tom V}}}} i {{Code|{{sr|#p["Nazwa strony głównej dla dzieci projektu"]|p=Pudełko/Tom V}}}}.
== {{Śródtytuł|p.Nazwa_przestrzeni_nazw_od_typu_jednostki}}{{Code|p.Nazwa_przestrzeni_nazw_od_typu_jednostki}} ==
Funkcja na podstawie podanych parametrów liczy nazwę przestrzeni nazw przedmiotową, w wersji kanonicznej, na podstawie typu jednostki lub innych dodatkowych parametrów z tablicy {{Code|args}}, w którym są ustawione ustawienia, co na podstawie tego uzyskujemy nazwę przestrzeni tego typu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|typ}} - typ jednostki,
* {{code|args}} - tablica ustawień, tam ustawienia są takie same, jakie się wsadza do funkcji w ramce {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, w funkcjach w wersji pierwszej: {{Code|{{m|Pudełko|{{sr|#p["Typ jednostki"]|Typ jednostki|p=Pudełko/Tom III}}}}}}, {{Code|{{m|Pudełko|{{sr|#p["Przedmiotowy typ jednostki"]|Przedmiotowy typ jednostki|p=Pudełko/Tom III}}}}}} i {{Code|{{m|Pudełko|{{sr|#p["Dyskusyjny typ jednostki"]|Dyskusyjny typ jednostk|p=Pudełko/Tom III}}}}}}, w wersji drugiej: {{Code|{{m|Pudełko|{{sr|#p["Typ jednostki 2"]|Typ jednostki 2|p=Pudełko/Tom III}}}}}}, {{Code|{{m|Pudełko|{{sr|#p["Przedmiotowy typ jednostki 2"]|Przedmiotowy typ jednostki 2|p=Pudełko/Tom III}}}}}} i {{Code|{{m|Pudełko|{{sr|#p["Dyskusyjny typ jednostki 2"]|Dyskusyjny typ jednostk 2|p=Pudełko/Tom III}}}}}}, oraz trzeciej: {{Code|{{m|Pudełko|{{sr|#p["Typ jednostki 3"]|Typ jednostki 3|p=Pudełko/Tom III}}}}}}, {{Code|{{m|Pudełko|{{sr|#p["Przedmiotowy typ jednostki 3"]|Przedmiotowy typ jednostki 3|p=Pudełko/Tom III}}}}}} i {{Code|{{m|Pudełko|{{sr|#p["Dyskusyjny typ jednostki 3"]|Dyskusyjny typ jednostk 3|p=Pudełko/Tom III}}}}}},
* {{Code|bez_analizy}} - jesli {{Code|true}}, funkja nie analizuje tablicy {{Code|args}}, tylko na podstawie typu jednostki liczy kanoniczną nazwę przestrzeni nazw, a gdy {{Code|false}}, na podstawie tej tablicy, a jeżeli tablica ta jest pusta, to liczy tak jakby ten parametr miał wartość prawdziwą.
Funkcja jest używana do budowy funkcji: {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame|p=Pudełko/Pomocne}}}}.
Funkcja zwraca nazwę przestrzeni nazw w wersji kanonicznej w postaci pewnej przestrzeni przedmiotowej.
== {{Śródtytuł|p.Typ_jednostki_uzyskany_z_frame}}{{Code|p.Typ_jednostki_uzyskany_z_frame}} ==
Funkcja pobiera typ jednostki ze zmiennych ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Typ_jednostki_uzyskany_z_frame(frame,i)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - numer zmiennej typu jednostki i nazwy jednostki,która będzie potrzebna do wyznaczania.
Parametry tablicy ramki funkcji tablicy transportu:
* {{Code|numer jednostki}} - jeśli nie podano {{Code|i}}, to oznacza numer typu jednostkii i nazwy jeddnostki rozpatrywanej,
* {{Code|typ jednostki}} -numer jednostki bazowej,
* {{Code|typ jednostki i}} - typ jednostki ogólny dla wszystkich jednostek numerkowej,
* {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}},... - typ jednostki szczególny wazniejszy niż ogólny, jeśli podano dla danego numeru jednostki numerkowej.
Gdy {{Code|i {{=}} 0}} funkcja zwraca wartość typu jednostki {{Code|typ jednostki}} tablicy ramki dziecka, a jeśli tego nie ma to rodzica.
A jeśli {{Code|i > 0}} funkcja podaje typ jednostki dla tego numerka typu jednostki, pod warunkiem, że podano nazwę jednostki zwróconą z: {{Code|{{sr|#p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze|p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2)|p=Pudełko/Pomocne}}}}, ale nazwa przestrzeni nazw za to nie może być podana, tzn. uzyskanej z funkcji: {{Code|{{sr|#p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze|p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1)|p=Pudełko/Pomocne}}}}.
Z funkcji korzystają: {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame|p=Pudełko/Pomocne}}}} i {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}.
Funkcja zwraca wartość typu jednostki dla danego {{Code|numer jednostki}} albo, jeśli tego poprzedniego n9e podano to o numerze {{Code|i}}.
== {{Śródtytuł|p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki}}{{Code|p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki}} ==
Funkcja podaje dyskusję typu jednostki, tzn. zmiennej o podstawie {{Code|dyskusja typu jednostki}}.
Dyskusja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - numer jednostki, który rozpatrujemy.
Parametry tablicy ramki tablicy transportu:
* {{Code|numer jednostki}} - jeśli nie podano {{Code|i}}, to liczy się ta zmienna,jako numer jednostki,którego chcemy liczyć naszą zmienną,
* {{Code|dyskusja typu jednostki}} - dyskusja typu jednostki dla tege bazowego {{Code|i {{=}} 0}},
* {{Code|dyskusja typu jednostki i}} - dyskusja typu jednostki dla numerkowego {{Code|i > 0}}, ale ogólny, mniej ważne nioż te szczególne,
* {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}},... - dyskusja typu jednostki, dla jednostki o numerze {{Code|i > 0}}.
Funkcja liczy dla {{Code|i {{=}} 0}} dyskusję typu jednostki w wersji bazowej, a jesli {{Code|i > 0}}, to numerkowej, a jeżeli tego nie ma, to posługuje się werssją ogólną. Na samym końcu funkcja liczy wartość logiczną podanej zmiennej, tzn. {{Code|tak}}, czy {{Code|nil}}.
Z funkcji korzystają: {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame|p=Pudełko/Pomocne}}}} i {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}.
== {{Śródtytuł|p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame}}{{Code|p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame}} ==
Funkcja zwraca nazwę przestrzeni nazw z typu jednostki, tej przedmiotowej, czy dyskusji, w zależnosci od podanej tej zmiennej i dyskusji typu jednostki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - numer jednostki w zmiennej {{Code|i}}, może być {{Code|nil}}.
Jeśli podano typ jednostki z funkcji: {{Code|{{sr|#p.Typ_jednostki_uzyskany_z_frame|p=Pudełko/Pomocne}}}}, jako nienilowa wartość, wteedy jest sprawdzane, czy to jest przestrzeń nazw dyskusji reprezentowana przez typ jednostki i przekształca na jej odpowiednik przedmiotowy. Funkcja liczy nazwę przestrzeni nazw z: {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_od_typu_jednostki|p=Pudełko/Pomocne}}}}, w wersji kanonicznej, z typu jednostki o numerze {{Code|i}}. A jeżeli ona istnieje, to używana jest funkcja: {{Code|{{sr|#p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki|p=Pudełko/Pomocne}}}}. Jeśli stwierdzono, że pierwtorny typ jednostk był dyskusji, to zwracana jest nazwa kanoniczna dyskusji, a jeśli zmienna o pewnym numerze uzyskana, to otrzymujemy na podstawie jej wartości, że trzeba przestrzeń kanoniczną zmamienić na dyskusji, w przeciwnym wypadku zwracana jest wartość przedmiotowa.
Z funkcji używają: {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Jaka_nazwa_jednostki|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Nazwa_przestrzeni_nazw|p=Pudełko/Pomocne}}}} i {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2|p=Pudełko/Pomocne}}}}.
Funckja zwraca nazwę przestrzeni nazw kanoniczną przedmiotową lub dyskusji.
== {{Śródtytuł|p.Typ_jednostki}}{{Code|p.Typ_jednostki}} ==
Funkcja liczy typ jednostkio na podstawie parametrów przestrzennych i nazwy jednostki, a czasami typu jednostki, także dyskusji typu jednostki. Funkcja wykorzystuje dodatkowe zmienne ramki, do liczenia typów jednostki, które na to mają szczególny wpływ, w przeciwnym wypadku to samo liczy, ale ogólnie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|kod_liczbowy_przestrzeni_nazw}} - {{Code|0}} - liczy nazwę normalną, bez transformacji, {{Code|1}} - przedmiotowej, czy {{Code|2}} - dyskusji,
* {{Code|i}} - numer jednostki, też na to ma wpływ {{Code|numer jednostki}}, zmienna ramki,
* {{Code|numer_argorytmu}} - numer algorytmu, jaki może być wykorzystany w funkcji {{Code|{{sr|#p.Uzyskanie_nazw_jednostki|p=Pudełko/Pomocne}}}}.
Funkcja wykorzystuje funkcje (procedury): {{Code|{{sr|#p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame|p=Pudełko/Pomocne}}}} i {{Code|{{sr|#p.Uzyskanie_nazw_jednostki|p=Pudełko/Pomocne}}}}.
Funkcja we wbudpowanym ciele funkcyjnym korzysta z: {{Code|{{sr|#p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych|p=Pudełko/Pomocne}}}} i {{Code|{{sr|#p.Nazwa_strony_bazowej_projektu_ze_zmiennej|p=Pudełko/Pomocne}}}}.
Używa też funkcji nazw: {{Code|{{sr|#m["PEŁNANAZWASTRONY"]|p=Nazwy/Tom II}}}}.
Funkcja ma w użyciu funkcje kodów: {{Code|{{sr|#p["Kod projektu tego projektu"]|p=Pudełko/Tom V}}}}.
== {{Śródtytuł|p.Uzyskanie_nazw_jednostki}}{{Code|p.Uzyskanie_nazw_jednostki}} ==
Funkcja za jednym razem liczy nazwę przestrzeni nazw, nazwę jednostki, czy oba te zmienne, w zależności od podanych parametrów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki,czy_uwzglednic_alternatywna_nazwe,i,numer_argorytmu,co_ma_liczyc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki fukcji tablicy transportu,
* {{Code|kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki}} - kod liczbowy funkcji, tzn. {{Code|0}} - normalna (bez transformacji), {{Code|1}} - przedmiotowa, bądź {{Code|2}} - dyskusji,
* {{Code|i}} - numer jednostki, {{Code|i {{=}} 0}}, bazowe, {{Code|i > 0}} - numerkowe,
* {{Code|numer algorytmu}} - {{Code|nil}}, liczy jej wersję trzecią, dla {{Code|1}} - pierwszą, i {{Code|2}} - drugą, funkcji nazw przestrzeni nazw i jednostki,
* {{Code|co_ma_liczyc}} - dla {{Code|co_ma_liczyc {{=}} 0}} lub jej wartości {{Code|nil}}, jest liczona nazwa przestrzeni i nazwa jednostki, {{Code|1}} - nazwa przestrzeni i {{Code|2}} - nazwa jednostki.
Funkcja wykorzystuje podstawy nazw przestrzeni nazw i jednostki dla drugiej zmiennej {{Code|0}} - {{Code|Nazwa przestrzeni nazw}} i {{Code|Nazwa jednostki}}, {{Code|1}} - {{Code|Nazwa przedmiotowej przestrzeni nazw}} i {{Code|Nazwa przedmiotowa jednostki}}, oraz {{Code|2}} - {{Code|Nazwa przestrzeni nazw dyskusji}} i {{Code|Nazwa dyskusji jednostki}}. Dla innnej wartości tego kodu, jest jak dla {{Code|0}}.
Z funkcji używają z {{Code|{{ld2|Pudełko}}}} dla parametrów przestrzennych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 3"]|p=Pudełko/Tom I}}}}, {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 3"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 3"]|p=Pudełko/Tom I}}}}, nazw jednostek: {{Code|{{sr|#p["Nazwa jednostki 3"]|p=Pudełko/Tom I}}}}, {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 3"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 3"]|p=Pudełko/Tom I}}}}, oraz pełnych nazw jednostek: {{Code|{{sr|#p["Pełna nazwa jednostki 3"]|p=Pudełko/Tom II}}}}, {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 3"]|p=Pudełko/Tom II}}}} i {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 3"]|p=Pudełko/Tom II}}}}, także z {{Code|{{ld2|Pudełko/Pomocne}}}}: {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, również z: {{Code|{{ld2|Pudełko/Potrzebne}}}}: {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe|p=Pudełko/Potrzebne}}}}.
=== {{Code|numer algorytmu}} {{=}} {{Code|nil}} (wersja trzecia algorytmu) ===
Wersja, nie z {{Code|2}} po spacji, wykorzystuje się dla {{Code|i {{=}} 0}}, a dla {{Code|i > 0}}, tą drugą wersję.
; Kod {{Code|kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki}} {{Code|{{=}}}} {{Code|0}} (liczy parametry normalne) {{Dk}}
* {{Code|nil}} lub {{Code|0}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - wykorzystywuje: do uzyskiwania nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}, a do zwracania nazwy jednostki używa: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}},
* {{Code|1}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - oblicza do liczenia nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"]|p=Pudełko/Tom I}}}},
* {{Code|2}} - liczy nazwę jednostki: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}}.
; Kod {{Code|1}} (liczy parametry przedmiotowe){{Dk}}
* {{Code|nil}} lub {{Code|0}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - wykorzystywuje: do uzyskiwania nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}, a do zwracania nazwy jednostki używa: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom I}}}},
* {{Code|1}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - oblicza do liczenia nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"]|p=Pudełko/Tom I}}}},
* {{Code|2}} - liczy nazwę jednostki: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom I}}}}.
; Kod {{Code|2}} (liczy parametry dyskusji){{Dk}}
* {{Code|nil}} lub {{Code|0}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - wykorzystywuje: do uzyskiwania nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"]|p=Pudełko/Tom I}}}}, a do zwracania nazwy jednostki używa: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"]|p=Pudełko/Tom I}}}},
* {{Code|1}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - oblicza do liczenia nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"]|p=Pudełko/Tom I}}}},
* {{Code|2}} - liczy nazwę jednostki: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"]|p=Pudełko/Tom I}}}}.
=== {{Code|numer algorytmu}} {{=}} {{Code|0}} (wersja pierwsza algorytmu) ===
; Kod {{Code|kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki}} {{Code|{{=}}}} {{Code|0}} (liczy parametry normalne) {{Dk}}
* {{Code|nil}} lub {{Code|0}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - wykorzystywuje: do uzyskiwania nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw"]|p=Pudełko/Tom I}}}}, a do zwracania nazwy jednostki używa: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}},
* {{Code|1}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - oblicza do liczenia nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw"]|p=Pudełko/Tom I}}}},
* {{Code|2}} - liczy nazwę jednostki: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}.
; Kod {{Code|1}} (liczy parametry przedmiotowe){{Dk}}
* {{Code|nil}} lub {{Code|0}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - wykorzystywuje: do uzyskiwania nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"]|p=Pudełko/Tom I}}}}, a do zwracania nazwy jednostki używa: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}},
* {{Code|1}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - oblicza do liczenia nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"]|p=Pudełko/Tom I}}}},
* {{Code|2}} - liczy nazwę jednostki: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}.
; Kod {{Code|2}} (liczy parametry dyskusji){{Dk}}
* {{Code|nil}} lub {{Code|0}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - wykorzystywuje: do uzyskiwania nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"]|p=Pudełko/Tom I}}}}, a do zwracania nazwy jednostki używa: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}},
* {{Code|1}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - oblicza do liczenia nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"]|p=Pudełko/Tom I}}}},
* {{Code|2}} - liczy nazwę jednostki: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}.
=== {{Code|numer algorytmu}} {{=}} {{Code|1}} (wersja druga algorytmu) ===
; Kod {{Code|kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki}} {{Code|{{=}}}} {{Code|0}} (liczy parametry normalne) {{Dk}}
* {{Code|nil}} lub {{Code|0}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - wykorzystywuje: do uzyskiwania nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}, a do zwracania nazwy jednostki używa: {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}},
* {{Code|1}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - oblicza do liczenia nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"]|p=Pudełko/Tom I}}}},
* {{Code|2}} - liczy nazwę jednostki: {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}}.
; Kod {{Code|1}} (liczy parametry przedmiotowe){{Dk}}
* {{Code|nil}} lub {{Code|0}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - wykorzystywuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"]|p=Pudełko/Tom I}}}}, a do zwracania nazwy jednostki używa: {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom I}}}},
* {{Code|1}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - oblicza do liczenia nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"]|p=Pudełko/Tom I}}}},
* {{Code|2}} - liczy nazwę jednostki: {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom I}}}}.
; Kod {{Code|2}} (liczy parametry dyskusji){{Dk}}
* {{Code|nil}} lub {{Code|0}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - wykorzystywuje: do uzyskiwania nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"]|p=Pudełko/Tom I}}}}, a do zwracania nazwy jednostki używa: {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"]|p=Pudełko/Tom I}}}},
* {{Code|1}} - dla {{Code|co_ma_liczyć}}: {{Code|nil}} lub {{Code|0}} - oblicza do liczenia nazwy przestrzeni nazw: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"]|p=Pudełko/Tom I}}}},
* {{Code|2}} - liczy nazwę jednostki: {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"]|p=Pudełko/Tom I}}}}.
== {{Śródtytuł|p.Nazwa_przestrzeni_nazw_dodatkowe}}{{Code|p.Nazwa_przestrzeni_nazw_dodatkowe}} ==
Funkcja liczy nazwy przestrzeni nazw numerkowe {{Code|i > 0}} z parametrów tylko przestrzennych, te parametry ramkowe mają pierwszeństwo przed tymi rodzica, czyli szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|numer_jednostki}} - numer jednostki, funkcja z tablocy ramki nie liczy zmiennej {{Code|numer jednostki}}, tylko to się podaje bezpośrednio, jako parametr.
Parametry tablicy ramki funkcji tablicy transportu:
* {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},... - nazwy przestrzeni nazw dla danych numerkowych, a stąd wybieramy ten ściśle określony, i sprawdzamy jego istnienie, przy pomocy wartości tego obranego, uzyskanego z tej funkcji, a ta funkcja do tego właśnie służy.
Z funkcji używają elementy funkcyjne z {{Code|{{ld2|Pudełko/Potrzebne}}}}: {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe|p=Pudełko/Potrzebne}}}}.
Funkcja zwraca wartość nazwy przestrzeni nazw, jeśli odpowiednio z: {{Code|frame.args}}, istnieje, a jesli nie, to z: {{Code|frame:getParent().args}}.
== {{Śródtytuł|p.Nazwa_jednostki}}{{Code|p.Nazwa_jednostki}} ==
Funkcja liczy nazwę jednostki z parametrów nazw jednostek, usuwa z niego nagłówek i parametry, a jeżeli tych parametrównie podano, to liczy na podstawie kodóowjęzyka i projektu nazwę przestrzeni nazw.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwa_jednostki(frame,i)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - numer jednostki,jeśli nie ma tego z: {{Code|numer jednostki}}.
Funckja korzysta z funkcji pomocniczych: {{Code|{{sr|#p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze|p=Pudełko/Pomocne}}}} i {{Code|{{sr|#p.Wikikody_kontenera|p=Pudełko/Pomocne}}}}. Funkcja też korzysta z funkcji nazw: {{Code|{{sr|#m.NAZWASTRONY|p=Nazwy/Tom II}}}}.
Z funkcji używają w module {{Code|{{ld2|Pudełko}}}}: {{Code|{{sr|#p["Nazwa jednostki"]|p=Pudełko/Tom I}}}}.
== {{Śródtytuł|p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze}}{{Code|p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze}} ==
Funkcja liczy nazwe przestrzeni nazw, z parametrów przestrzennych, i nazwę jednostki, z parametrów nazwy jednostki, dla ściśle określonego numeru jednostki podanego ewentualnie przy pomocy {{Code|i}}. Funkcja ma też parametr, co ma podać w zależności od tego parametru.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - numer ewentualny jednostki,
* {{Code|co_podac}} - jakie parametry ma podawać.
Parametry tablicy ramki funkcji tablicy transportu:
; Parametry przestrzenne
* {{Code|nazwa przestrzeni nazw}} - nazwa przestrzeni nazw dla parametrów przestrzennych bazowych,
* {{Code|nazwa przestrzeni nazw i}} - nazwa przestrzeni nazw ogólny numerkowy, ale w mniej ważny niż te numerkowe szczególne,
* {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}},... - nazwa przestrzeni nazw szczególne numerkowe.
; Parametry jednostek
* {{Code|nazwa jednostki}} - nazwa jednostki dla parametrów bazowych,
* {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwa jednostki dla parametrów numerkowych.
Z parametrów zwróconych przez ten obiekt korzystają funkcje z {{Code|{{ld2|Pudełko/Pomocne}}}}: {{Code|{{sr|#p.Nazwa_przestrzeni_nazw|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Typ_jednostki_uzyskany_z_frame|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Typ_jednostki|p=Pudełko/Pomocne}}}}, {{Code|{{sr|#p.Nazwa_jednostki|p=Pudełko/Pomocne}}}} i {{Code|{{sr|#p.Jaka_nazwa_jednostki|p=Pudełko/Pomocne}}}}.
=== Wartości zwracane ===
; jakie parametry ma podać dla{{Dk}} {{Code|co_podac{{=}}nil}}, wtedy funkcja zwraca{{Dk}}
* nazwę przestrzeni nazw,
* nazwę jednostki,
* numer jednostki.
; jakie parametry ma podać dla wartości{{Dk}} {{Code|1}}, wtedy{{Dk}}
* nazwę przestrzeni nazw,
* numer jednostki.
; Przypadek przeciwny{{Dk}}
* w tym przypadku jest jak dla wartości {{Code|nil}}.
== {{Śródtytuł|p.Jaka_nazwa_jednostki}}{{Code|p.Jaka_nazwa_jednostki}} ==
Funkcja do liczenia nazwy jednostki w wersji drugiej, tzn. do liczenia jej brany też jest pod uwagę jej część przestrzenna, gdy nazwa przestrzeni nazw z parametrów przestrzennych wskazuje na przestrzeń główną, w innym wypadku brana jest całość nazwy jednostki, ale nie zawsze tak jest, bo też jest sprawdzane, czy nazwa jednostki ma w sobie dwukropek na podczątku czagu znakowego, wtedy to jest przetwarzane jako pełna nazwa strony, wtedy jest liczonona jej nazwa strony do wyznaczania nowej nazwy jednostki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Jaka_nazwa_jednostki(frame,i,jaka)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|i}} - ewentualny numer jednostki,
* {{Code|jaka}} - typ policzonej nazwy jednostki, wybieralne elementy, gdy ona jest {{Code|nil}} (nazwa jednostki jest liczona bez przetwarzania na przedmiotową, czy dyskusji), '''przedmiotowa''' (na przedmiotową) i '''dyskusja''' (na dyskusji).
Funkcja korzysta z {{Code|{{ld2|Pudełko/Pomocne}}}}, czyli: {{Code|{{sr|#p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze|p=Pudełko/Pomocne}}}} i {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame|p=Pudełko/Pomocne}}}}, modułu: {{Code|{{ld2|Html}}}}: {{Code|{{sr|#html_modul["NazwaStronyAdresu"]|p=Html}}}} oraz modułu: {{Code|{{ld2|Wiki}}}}: {{Code|{{sr|#p["CzyBieżącaWiki"]}}}}, także używa funkcji nazw {{Code|{{ld2|Nazwy}}}}: {{Code|{{sr|#m.Np|p=Nazwy/Tom I}}}} i {{Code|{{sr|#m.NpDane|p=Nazwy/Tom I}}}}, oraz z innych tego typu funkcji: {{Code|{{sr|#m.NAZWAPRZESTRZENI|p=Nazwy/Tom II}}}} i {{Code|{{sr|#m.NAZWASTRONY|p=Nazwy/Tom II}}}}. Również korzysta z: {{Code|{{ld2|Parametry}}}}: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
Z funkcji korzystają w {{Code|{{ld2|Pudełko}}}}: {{Code|{{sr|#p["Nazwa jednostki 2"]|p=Pudełko/Tom I}}}}, {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"]|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"]|p=Pudełko/Tom I}}}}.
== {{Śródtytuł|p.Czy_przestrzen_nazw_jest_obslugiwana}}{{Code|p.Czy_przestrzen_nazw_jest_obslugiwana}} ==
Sprawdza, czy dana przestrzeń nazw jest obsługiwana, względem parametrów podanych w ramce.
Definicja skrótowa:
<syntaxhighlight lang="lua">
function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu,
* {{Code|jakas_przestrzen_nazw}} - sprawdzana przestrzeń nazw, czy jest obsługiwana względem parametrów ramkowych,
* {{Code|kod_jezyka}} - kod języka sprawdzany, jeśli został podany w odpowiednio w ramce, jak wyżej,
* {{Code|kod_projektu}} - kod projektu sprawdzany, jak z kodem języka, jak wyżej.
Funckja wykorzystuje do tego celu funkcje z {{Code|{{ld2|Wiki}}}}: {{Code|{{sr|#p["CzyBieżącaWiki"]|p=Wiki}}}}, i funkcje nazw {{Code|{{ld2|Nazwy}}}}: {{Code|{{sr|#m.Np|p=Nazwy/Tom I}}}} i {{Code|{{sr|#m.NpDane|p=Nazwy/Tom I}}}}.
Z funkcji korzystają: {{Code|{{sr|#p["Parametry ogólnego pudełka"]|p=Pudełko/ParametryCechy}}}} i {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe|p=Pudełko/Potrzebne}}}}.
== {{Śródtytuł|p.Analiza_interwiki_czy_projekt_aktualny}}{{Code|p.Analiza_interwiki_czy_projekt_aktualny}} ==
Funkcje sprawdzające, czy projekt ma inny język niż lokalny, czy projekt bieżący, bądź lokalny.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt)...end;
</syntaxhighlight>
Z funkcji korzystają elementy: {{Code|{{sr|#p["Inny niż język bieżący wiki"]|p=Pudełko/Tom V}}}}, {{Code|{{sr|#p["Inne niż lokalne wiki"]|p=Pudełko/Tom V}}}} i {{Code|{{sr|#p["Inne niż bieżące wiki"]|p=Pudełko/Tom V}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4dehitji7nutea13ujzbkzn7mcoui6h
Wikibooks:Moduły/Pudełko/Potrzebne
4
63505
560306
542614
2026-10-29T14:02:05Z
Persino
2851
560306
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Pudełko/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.Problemy_kontenerowe_szablonowe}}{{Code|p.Problemy_kontenerowe_szablonowe}} ==
Funkcja jest od wskazania, jakie błędy na stronie są w wywołaniu szablonu, lub czy jest jakikolwiek pierwszy błąd, jest wykorzystywana przez funkcje: {{Code|{{sr|#p["Błędy pudełka"]|p=Pudełko/Tom IV}}}}, {{Code|{{sr|#p["Przedmiotowe błędy pudełka"]|p=Pudełko/Tom IV}}}} i {{Code|{{sr|#p["Dyskusyjne błędy pudełka"]|p=Pudełko/Tom IV}}}}, a te funkcje bezpośrednio, a funkcję z nagłówka pośrednio, są wywoływane przez: {{Code|{{sr|#p["Cecha pudełka"]|p=Pudełko/Tom IV}}}}, {{Code|{{sr|#p["Przedmiotowa cecha pudełka"]|p=Pudełko/Tom IV}}}} i {{Code|{{sr|#p["Dyskusyjna cecha pudełka"]|p=Pudełko/Tom IV}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="Lua">
function p.Problemy_kontenerowe_szablonowe(frame, kod_liczbowy_przestrzeni_nazw)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu, parametry tablicy są pokazane na stronie: {{sr|#Parametry funkcji|parametrów funkcji cechowania|p=Pudełko/Tom IV}}.
* {{Code|kod_liczbowy_przestrzeni_nazw}} - jak ma liczyćnazwę przestrzeni nazw, {{Code|0}} - liczy nazwę przestrzeni nazw bez przekształcania, {{Code|1}} - przekształca na przedmiotową, {{Code|2}} - a to na dyskusji.
Ta funkcja też jest opisywana na: {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe|p=Pudełko/Tom IV}}}}.
== {{Śródtytuł|p.Cecha_kontenerowa_szablonowa}}{{Code|p.Cecha_kontenerowa_szablonowa}} ==
Funkcje do liczenia cechy pudełka, wykorzystuje ją: {{Code|{{sr|#p["Cecha pudełka"]|p=Pudełko/Tom IV}}}}, {{Code|{{sr|#p["Przedmiotowa cecha pudełka"]|p=Pudełko/Tom IV}}}} i {{Code|{{sr|#p["Dyskusyjna cecha pudełka"]|p=Pudełko/Tom IV}}}}, które w w drugim parametrze są nazwy funkcji kolejno zawarte w cudzysłowach: {{Code|{{sr|#p["Błędy pudełka"]|p=Pudełko/Tom IV}}}}, {{Code|{{sr|#p["Przedmiotowe błędy pudełka"]|p=Pudełko/Tom IV}}}} i {{Code|{{sr|#p["Dyskusyjne błędy pudełka"]|p=Pudełko/Tom IV}}}}. Tą drugą funkcję nie muszą być te dane funkcje, ale mogą być, można też podać funkcję tą w parametrze: {{Code|funkcja cechowania}}, która mieszci się w module: {{Code|moduł}}, którego domyślną wartością jest wartość {{Code|{{ld|Pudełko}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Cecha_kontenerowa_szablonowa(frame,__funkcja)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji transportu funkcji, ten parametr przyjmuje funkcja do badania cechy,której nazwa jest w drugim parametrze funkcji,
* {{Code|__funkcja}} - funkcja, która jest wykorzystywana do liczenia cechy.
Parametry tablicy ramki funkcji tabkicy transportu:
* {{Code|funkcja cechowania}} - funkcja do liczenia cechy,
* {{Code|moduł}} - nazwa modułu, w którym mieści się funkcja o podanej w nazwie, którą jest nazwa zaraz powyżej.
== {{Śródtytuł|p.Generalny_kontener_szablonowy}}{{Code|p.Generalny_kontener_szablonowy}} ==
Funkcja jest wykorzystywana do budowy pudełek, jest wywoływana przez: {{Code|{{sr|#p["Ogólne pudełko"]|p=Pudełko/Tom V}}}}, którą umieszcza się w szablonie pudełku, który służy do wyświetlania pełnego komunikatu, domyślnie szablonu {{s|mbox}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Generalny_kontener_szablonowy(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica transportu funkcji tablicy transportu.
Parametry tablicy ramki funkcji tablicy transportu:
* są opisywane na stronie, którą ta funkcja w nagłówku jest wykorzystywana, co jest zaznaczone w jej opisie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
eys7vk09hbvqniwqz039x02xvbjfxz7
Wikibooks:Moduły/Pudełko/ParametryCechy
4
63506
560307
542615
2026-10-29T14:03:45Z
Persino
2851
560307
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Pudełko/ParametryCechy}}|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 zapytań pudełka parametrów cechy ==
Przykłady podano na podstawie szablonu: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu}}}}. Aby włączyć system zapytań, to w tym szablonie należy włączyć parametr: {{Parametr|parametry pudełka|tak}}, z zawartością niepustą.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|...}}}}.
Aby to zadziałało, to szablon w: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu}}}}, musi być tak zbudowane, aby w swojej definicji miało: {{Code|{{m|Pudełko|{{sr|#p["Ogólne pudełko"]|Ogólne pudełko|p=Pudełko/Tom V}}}}}}, bo inaczej w takim przypadku system nie zadziała i otrzymamy nieprzewidywalne skutki. Przykłady szablonów pudełek z tą funkcją ramki języka {{lpg|Lua}} w {{Lpg|Lua|Scribunto}} są w kategorii, w którym mieszczą się te szablony: {{Code|{{lk2|Szablony z szablonowym opisem pudełka}}}}.
Czasami do takiego szablonu trzeba podać dodatkowe parametry, jak np. {{Parametr|numer jednostki|2}}, wtedy użycie:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|numer jednostki{{=}}2|...}}}}.
Konstrukcją szablonu: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu}}}}, pudełek, w którym musi być jedyna funkcja {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Ogólne pudełko
| cecha = {{#invoke:Pudełko|Przedmiotowa cecha pudełka|pierwszy człon kategorii błędu=Szablony informacyjne|nieobsługiwane strony główne=tak|nazwy jednostki numerowane=tak|obsługiwane opisy jako strony jednostek programowych=tak|(main)|Wikijunior|User|Category|Template|Module|Wikibooks|Help}}
| nazwa = ...
| typ = ...
| grafika = ...
| tekst = ...
| kategorie = ...
}}
</syntaxhighlight>
Gdzie: {{Code|...}}, jest to jakiś wikikod wewnątrz funkcji: {{Code|{{m|Pudełko|{{sr|#p["Ogólne pudełko"]|Ogólne pudełko|p=Pudełko/Tom V}}}}}}. Ten kod otaczamy znacznikami mechanizmu {{Strong|MediaWiki}}, czyli: {{Tag|includeonly}}, a na samym końcu tak skonstrułowanego kodu dodajemy: {{Tag|noinclude|zawartość={{s|Dokumentacja}}}}, {{Tag|noinclude|zawartość={{s|Dokumentacja|zawartość{{=}}...}}}} lub {{Tag|noinclude|zawartość={{s|Dokumentacja|Szablon:Nazwa szablonu/opis}}}}. Widzimy, że w tej funkcji w parametrze: {{Parametr|cecha}}, musi być umieszczona funkcja: {{Code|{{m|Pudełko|{{sr|#p["Cecha pudełka"]|Cecha pudełka|p=Pudełko/Tom IV}}|...}}}}, {{Code|{{m|Pudełko|{{sr|#p["Przedmiotowa cecha pudełka"]|Przedmiotowa cecha pudełka|p=Pudełko/Tom IV}}|...}}}} lub {{Code|{{m|Pudełko|{{sr|#p["Dyskusyjna cecha pudełka"]|Dyskusyjna cecha pudełka|p=Pudełko/Tom IV}}|...}}}}, w tym przypadku jest to: {{Code|{{m|Pudełko|{{sr|#p["Przedmiotowa cecha pudełka"]|Przedmiotowa cecha pudełka|p=Pudełko/Tom IV}}|...}}}}.
=== {{Code|obsługiwana przestrzeń nazw}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|obsługiwana przestrzeń nazw{{=}}tak|nazwa przestrzeni nazw{{=}}User}}}}.
Szablon pudełek sprawdza, czy w podanej nazwie przestrzeni nazw w parametrze w: {{Parametr|nazwa przestrzeni nazw|User}}, czy użyta nazwa przestrzeni jest obsługiwana przez podany szablon bez włączenia funkcji zapytań.
=== {{Code|pierwsza nieobsługiwana przestrzeń nazw}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną.
Przykład bez użycia kodów języka i projektu:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|pierwsza nieobsługiwana przestrzeń nazw{{=}}tak}}}}.
Przykład z ich wykorzystywaniem:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|pierwsza nieobsługiwana przestrzeń nazw{{=}}tak|kod języka 2{{=}}en|kod projektu 2{{=}}w|numer jednostki{{=}}2}}}}.
Zwraca na podstawie tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, i pewnych kodów projektu i jego języka, czyli tablicy z: {{Code|mw.site.namespaces}} (w przypadku projektu bieżącego, a to występuje w przypadku braku kodów) lub dla projektu bieżącego i niebieżącego: {{m|Nazwy|NpDane}}, według kodów, pierwszą, według tej tablicy, nieobsługiwaną przestrzeń nazw, w przeciwnym wypadku zwraca wartość pustą.
=== {{Code|pierwsza obsługiwana przestrzeń nazw}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną.
Przykład bez użycia kodów języka i projektu:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|pierwsza obsługiwana przestrzeń nazw{{=}}tak}}}}.
Przykład z ich wykorzystywaniem:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|pierwsza obsługiwana przestrzeń nazw{{=}}tak|kod języka 2{{=}}en|kod projektu 2{{=}}w|numer jednostki{{=}}2}}}}.
Zwraca na podstawie tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, i pewnych kodów projektu i jego języka, czyli tablicy z: {{Code|mw.site.namespaces}} (w przypadku projektu bieżącego, a to występuje w przypadku braku kodów) lub dla projektu bieżącego i niebieżącego: {{m|Nazwy|NpDane}}, według kodów, pierwszą według tej tablicy nieobsługiwaną przestrzeń nazw, w przeciwnym wypadku zwraca wartość pustą.
=== {{Code|pierwsza obsługiwana niegłówna przestrzeń nazw}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną.
Przykład bez użycia kodów języka i projektu:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|pierwsza obsługiwana niegłówna przestrzeń nazw{{=}}tak}}}}.
Przykład z ich wykorzystywaniem:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|pierwsza obsługiwana niegłówna przestrzeń nazw{{=}}tak|kod języka 2{{=}}en|kod projektu 2{{=}}w|numer jednostki{{=}}2}}}}.
Zwraca na podstawie tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, i pewnych kodów projektu i jego języka, czyli tablicy z: {{Code|mw.site.namespaces}} (w przypadku projektu bieżącego, a to występuje w przypadku braku kodów) lub dla projektu bieżącego i niebieżącego: {{m|Nazwy|NpDane}}, według kodów, pierwszą według tej tablicy nieobsługiwaną niegłówną przestrzeń nazw, w przeciwnym wypadku zwraca wartość pustą.
=== {{Code|pierwsza obsługiwana użytkowa niegłówna cechowa przestrzeń nazw}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną.
Przykład bez użycia kodów języka i projektu:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|pierwsza obsługiwana użytkowa niegłówna cechowa przestrzeń nazw{{=}}tak}}}}.
Przykład z ich wykorzystywaniem:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|pierwsza obsługiwana użytkowa niegłówna cechowa przestrzeń nazw{{=}}tak|kod języka 2{{=}}en|kod projektu 2{{=}}w|numer jednostki{{=}}2}}}}.
Przy takej możliwości, możliwe nazwy funkcji błędów są: {{Code|{{sr|#p["Błędy pudełka"]|Błędy pudełka|p=Pudełko/Tom IV}}}}, {{Code|{{sr|#p["Przedmiotowe błędy pudełka"]|Przedmiotowe błędy pudełka|p=Pudełko/Tom IV}}}} i {{Code|{{sr|#p["Dyskusyjne błędy pudełka"]|Dyskusyjne błędy pudełka|p=Pudełko/Tom IV}}}}. Na podstawie tej pierwszej nazwy funkcji zapytanie liczy nazwę przestrzeni nazw '''normalną''', według drugiej '''przedmiotową''', a trzeciej '''dyskusji''', a w przypadku innej nazwy tą '''pierwszą'''.
Zwraca na podstawie tablicy, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, i pewnych kodów projektu i jego języka, czyli tablicy z: {{Code|mw.site.namespaces}} (w przypadku projektu bieżącego, a to występuje w przypadku braku kodów) lub dla projektu bieżącego i niebieżącego: {{m|Nazwy|NpDane}}, według kodów, pierwszą według tej tablicy obsługiwaną na podstawwie nazwy funkcji błędów nazwę przestrzeni nazw nierówną przestrzeni {{Np|(main)|kanoniczna=tak|link=tak}} i {{Np|User|kanoniczna=tak|link=tak}}, w przypadku braku takich przestrzeni nazw tam, to liczy przestrzeń: {{Np|User|kanoniczna=tak|link=tak}}, jeśli jest obsługiwana, w tym pierwszym funkcją: {{m|Nazwy|Np}}, drugim: {{m|Nazwy|NpDane}}, w przeciwnym wypadku to wtedy funkcja liczy przestrzeń główną: {{Np|(main)|kanoniczna=tak|link=tak}}, na projekcie bieżącym tymi samymi funkcjami.
=== {{Code|nieobsługiwana strona główna projektu}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|nieobsługiwane strony główne}} lub {{Code|nieobsługiwana strona główna projektu}}, w ramce funkcji cechowania.
Przykład bez użycia kodów języka i projektu:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwana strona główna projektu{{=}}tak}}}}.
Przykład z ich wykorzystywaniem:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwana strona główna projektu{{=}}tak|kod języka 2{{=}}en|kod projektu 2{{=}}w|numer jednostki{{=}}2}}}}.
Funkcja sprawdza, czy dana strona główna projektu jest nieobsługiwana przez szablon pudełek, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku zwraca wartość pustą.
=== {{Code|nieobsługiwana strona główna dla dzieci}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|nieobsługiwane strony główne}} lub {{Code|nieobsługiwana strona główna dla dzieci}}, w ramce funkcji cechowania.
Przykład bez użycia kodów języka i projektu:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwana strona główna dla dzieci{{=}}tak}}}}.
Przykład z ich wykorzystywaniem:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwana strona główna dla dzieci{{=}}tak|kod języka 2{{=}}en|kod projektu 2{{=}}w|numer jednostki{{=}}2}}}}.
Funkcja sprawdza, czy dana strona główna dla dzieci projektu jest nieobsługiwana przez szablon pudełek, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku zwraca wartość pustą.
=== {{Code|nieobsługiwane strony główne użytkowników}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|nieobsługiwane strony główne}} lub {{Code|nieobsługiwane strony główne użytkowników}}, w ramce funkcji cechowania.
Przykład bez użycia kodów języka i projektu:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwane strony główne użytkowników{{=}}tak}}}}.
Przykład z ich wykorzystywaniem:
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwane strony główne użytkowników{{=}}tak|kod języka 2{{=}}en|kod projektu 2{{=}}w|numer jednostki{{=}}2}}}}.
Funkcja sprawdza, czy dana strona główna użytkownika jest nieobsługiwana przez szablon pudełek, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku zwraca wartość pustą.
=== {{Code|obsługiwany brudnopis projektu}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|obsługiwany brudnopis projektu}}, w ramce funkcji cechowania.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|obsługiwany brudnopis projektu{{=}}tak}}}}.
Funkcja sprawdza, czy brudnopis projektu jest obsługiwany, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|obsługiwany brudnopis szablonu}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|obsługiwany brudnopis szablonu}}, w ramce funkcji cechowania.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|obsługiwany brudnopis szablonu{{=}}tak}}}}.
Funkcja sprawdza, czy brudnopis szablonu jest obsługiwany, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|obsługiwany brudnopis modułu}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|obsługiwany brudnopis modułu}}, w ramce funkcji cechowania.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|obsługiwany brudnopis modułu{{=}}tak}}}}.
Funkcja sprawdza, czy brudnopis modułu jest obsługiwany, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|nieobsługiwane strony brudnopisu szablonów}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|nieobsługiwane strony jednostek programowych}} lub {{Code|nieobsługiwane strony brudnopisu szablonów}}, w ramce funkcji cechowania.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwane strony brudnopisu szablonów{{=}}tak}}}}.
Funkcja sprawdza, czy brudnopis nieopisowy szablonów jest nieobsługiwany, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|nieobsługiwane strony brudnopisu opisu szablonów}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|nieobsługiwane strony opisu jednostek programowych}} lub {{Code|nieobsługiwane strony brudnopisu opisu szablonów}}, w ramce funkcji cechowania.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwane strony brudnopisu opisu szablonów{{=}}tak}}}}.
Funkcja sprawdza, czy brudnopis opisowy szablonów jest nieobsługiwany, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|nieobsługiwane strony brudnopisu modułów}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|nieobsługiwane strony jednostek programowych}} lub {{Code|nieobsługiwane strony brudnopisu modułów}}, w ramce funkcji cechowania.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwane strony brudnopisu modułów{{=}}tak}}}}.
Funkcja sprawdza, czy brudnopis nieopisowy modułów jest nieobsługiwany, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|nieobsługiwane strony brudnopisu opisu modułów}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|nieobsługiwane strony opisu jednostek programowych}} lub {{Code|nieobsługiwane strony brudnopisu opisu modułów}}, w ramce funkcji cechowania.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwane strony brudnopisu opisu modułów{{=}}tak}}}}.
Funkcja sprawdza, czy brudnopis opisowy szablonów jest nieobsługiwany, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|nieobsługiwane strony szablonów}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|nieobsługiwane strony jednostek programowych}} lub {{Code|nieobsługiwane strony szablonów}}, w ramce funkcji cechowania.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwane strony szablonów{{=}}tak}}}}.
Funkcja sprawdza, czy nieopisy szablonów jest nieobsługiwany, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|nieobsługiwane strony opisu szablonów}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|nieobsługiwane strony opisu jednostek programowych}} lub {{Code|nieobsługiwane strony opisu szablonów}}, w ramce funkcji cechowania.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwane strony opisu szablonów{{=}}tak}}}}.
Funkcja sprawdza, czy opisy szablonów jest nieobsługiwany, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|nieobsługiwane strony modułów}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|nieobsługiwane strony jednostek programowych}} lub {{Code|nieobsługiwane strony modułów}}, w ramce funkcji cechowania.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwane strony modułów{{=}}tak}}}}.
Funkcja sprawdza, czy nieopisy modułów jest nieobsługiwany, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|nieobsługiwane strony opisu modułów}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów: {{Code|nieobsługiwane strony opisu jednostek programowych}} lub {{Code|nieobsługiwane strony opisu modułów}}, w ramce funkcji cechowania.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|nieobsługiwane strony opisu modułów{{=}}tak}}}}.
Funkcja sprawdza, czy opisy modułów jest nieobsługiwany, wtedy zwraca wartość: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|dodatkowy parametr}} ===
Ten parametr, o wartości niepustej, informuje, że sprawdzamy, czy został podany dodatkowy parametr, który jako parametr, czy jest w funkcji cechowania.
==== {{Code|parametr}} ====
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|dodatkowy parametr{{=}}tak|parametr{{=}}nieobsługiwane strony opisu modułów}}}}.
Ten parametr, tzn.{{Code|nieobsługiwane strony opisu modułów}}, jeżeli znajduje, jako parametr, w funkcji cechy pudełka, a jeżeli jest to funkcja zwraca: {{Code|tak}}, w przeciwnym wypadku ciąg pusty.
=== {{Code|maksymalny numer argumentu nienazwanego}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|maksymalny numer argumentu nienazwanego{{=}}1}}}}.
Parametr mówiący, że maksymalny numer parametrów nienazwanych: {{Code|1}}, {{Code|2}},..., czyli tutaj końcu się na jedynce, czyli dalej niż: {{Code|1}}, tego nie ma. Też jest taki maksymalny numer parametru z tym numerkiem po spacji o pewnych podstawach.
=== {{Code|zwracane kategorie błędu}} ===
Definiuje zwracane kategorie z pewnym dodatkiem {{Code|dodatek}}.
==== {{Code|dodatek}} ====
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|zwracane kategorie błędu{{=}}tak|dodatek{{=}}polskie wiki}}}}.
Funkcja sprawdza, kolejne parametry cechy: {{Code|pierwszy człon kategorii błędu 1}} lub {{Code|pierwszy człon kategorii błędu}}, dalej: {{Code|pierwszy człon kategorii błędu 2}},..., na podstawie tego tworzy wywołanie linku kategoriowego kategorii o pewnej nazwie z dodatkiem po myślniku, z obu stronach ze spacjami, charakterystycznym opisanym przez zmienną {{Code|dodatek}} z nazwą linku równej nazwie strony.
Normalne wywołanie szablonu pudełka zwraca taką samą kategorie o takiej samej stronie kategorii, co ten link, o nazwie sortowania o takiej samej, co ta nazwa linku.
=== {{Code|parametry}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów zdefiniowanej w zmiennej: {{Parametr|parametry|parametr1{{((}}{{=}}{{))}}wartość1{{((}}!{{))}}parametr2{{((}}{{=}}{{))}}wartość2{{((}}!{{))}}parametr3{{((}}{{=}}{{))}}wartość3}}, w funkcji cechy pudełka.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|parametry{{=}}tak}}}}.
Ta zmienna przedstawia dodatkowe parametry, jakie ma wyświetlić w szablonie: {{Code|{{s|S}}}}, i w szablonie pudełek: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu}}}}, w szablonie: {{Code|{{s|Szablonowy opis pudełka}}}}.
=== {{Code|dodatkowa informacja}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów zdefiniowanej w zmiennej: {{Parametr|dodatkowa informacja|Dodatkowa informacja}}, w funkcji cechy pudełka.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|dodatkowa informacja{{=}}tak}}}}.
Tak uzyskana wartość z: {{Code|dodatkowa informacja}}, jest wyświetlana, jako dodatkowa informacja w: {{Code|{{s|Szablonowy opis pudełka}}}}. Szablon wyświetla wartość tej zmiennej ramki cechy.
=== {{Code|najniższy numer dodatkowego warunku}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów zdefiniowanej w zmiennej o podstawie: {{Code|dodatkowy warunek}}, z numerkiem po spacji, w funkcji cechy pudełka.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|dodatkowa informacja{{=}}tak}}}}.
Szablon wyświetla minimalny numerek po podstawie po spacji tego parametru. Przykładowy szablon: {{s|Dopracować}}.
=== {{Code|najwyższy numer dodatkowego warunku}} ===
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja też liczy na podstawie parametrów zdefiniowanej w zmiennej o podstawie: {{Code|dodatkowy warunek}}, z numerkiem po spacji, w funkcji cechy pudełka.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|dodatkowa informacja{{=}}tak}}}}.
Szablon wyświetla maksymalny numerek po podstawie po spacji tego parametru. Przykładowy szablon: {{s|Dopracować}}.
=== {{Code|parametry dodatkowego warunku}} ===
Szablon wyświetla kolejne wartości parametru z numerkiem po spacji pewnej zmiennej.
==== {{Code|numer parametru dodatkowego}} ====
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja liczy wartości parametrów zdefiniowanej w zmiennej o podstawie: {{Code|parametry przykładowe dodatkowego warunku}}, z numerkiem po spacji (którym jest wartość: {{Code|numer parametru dodatkowego}}, w postaci liczby) - to ma pierwszeństwo, lub bez niego, w funkcji cechy pudełka.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|parametry dodatkowego warunku{{=}}tak|numer parametru dodatkowego{{=}}2}}}}.
Szablon wyświetla wartość zmiennej z numerkiem po podstawie po spacji tego parametru, tutaj jest z numerkiem: {{Code|2}} wskazanym przez zmienną: {{Code|numer parametru dodatkowego}}. Przykładowy szablon: {{s|Dopracować}}.
=== {{Code|kategorie parametrów dodatkowych}} ===
Zmienna do wyświetlania zmiennych o pewnej wartości o pewnej podstawie z numerkiem po spacji.
==== {{Code|numer parametru dodatkowego}} ====
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja liczy na podstawie parametrów zdefiniowanej w zmiennej o różnych podstawach, z numerkiem po spacji - to ma pierszeństwo, lub bez niego, w funkcji cechy pudełka.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|kategorie parametrów dodatkowych{{=}}tak|numer parametru dodatkowego{{=}}2}}}}.
Szablon w jednym ciągu znakowym zbiera dodatki kategorii z: {{Code|dodatkowy warunek 1}} lub {{Code|dodatkowy warunek}}, {{Code|dodatkowy warunek 2}}, {{Code|dodatkowy warunek 3}},..., stąd bierze to tutaj te: {{Code|2}}, a jeżeli nie ma takiego, to szablon zwraca ciąg pusty.
A następnie dla elementów z: {{Code|dodatek kategorii błędu dodatkowego warunku 1}} lub {{Code|dodatek kategorii błędu dodatkowego warunku 2}}, {{Code|dodatek kategorii błędu dodatkowego warunku 3}},..., wybierając je o numerze {{Code|2}}, tutaj jest wartością zmiennej: {{Code|numer parametru dodatkowego}}, a jeżeli nie ma żadnego z nich, to {{Code|dodatek kategorii}} będzie równy {{Code|błędne wywołania}}, w przeciwnym wypadku, wartość tego parametru jest dodatkiem kategorii.
Tworzymy linki kategoriowe dla każdego z: {{Code|pierwszy człon kategorii błędu 1}} lub {{Code|pierwszy człon kategorii błędu}}, {{Code|pierwszy człon kategorii błędu 2}}, {{Code|pierwszy człon kategorii błędu 3}},..., do którego dodaje się ten dodatek kategorii z myślnikiem z obu stron ze spacjami z nazwami linku równy nazwie kategorii. W ten sposób zwracana są linki kategoriowe tak utworzone przez to wywołanie szablonowe.
Przykładowe wywołanie: {{s|Dopracować}}.
=== {{Code|istnieje taki parametr dodatkowego warunku}} ===
Zmienna do wyświetlania zmiennych o pewnej wartości o pewnej podstawie z numerkiem po spacji.
==== {{Code|numer parametru dodatkowego}} ====
Jest to przykład wywołania szablonu dla tego parametru dla pojedynczego tego zapytania obrazującą tą zmienną. Funkcja liczy na podstawie parametrów zdefiniowanej w zmiennej o podstawie: {{Code|dodatkowy warunek}}, z numerkiem po spacji - to ma pierwszeństwo, lub bez niego, w funkcji cechy pudełka.
: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu|parametry pudełka{{=}}tak|istnieje taki parametr dodatkowego warunku{{=}}tak|numer parametru dodatkowego{{=}}2}}}}.
Funkcja zwraca z: {{Code|dodatkowy warunek 1}} lub {{Code|dodatkowy warunek}}, {{Code|dodatkowy warunek 2}}, {{Code|dodatkowy warunek 3}},..., stąd wybierany jest numerek ze zmiennej: {{Code|numer parametru dodatkowego}}, tutaj jest {{Code|2}}, jest wybierany z nich, i jest zwracany. Przykładowe wywołanie: {{S|Dopracować}}.
== {{Śródtytuł|p["Parametry ogólnego pudełka"]}}{{Code|p["Parametry ogólnego pudełka"]}} ==
Funkcje zapytań, która liczy pewne parametry na podstawie szablonu pudełka z jedynym główną ramką: {{Code|{{m|Pudełko|{{sr|#p["Ogólne pudełko"]|Ogólne pudełko|p=Pudełko/Tom V}}}}}}, te parametry są zebrane w rozdziale: {{sr|#Funkcje zapytań pudełka parametrów cechy|p=Pudełko/ParametryCechy}}.
Definicja skrótowe funkcji:
<syntaxhighlight lang="lua">
p["Parametry ogólnego pudełka"] = function (frame,__funkcja)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki funkcji tablicy transportu, w którym są zdefiniowane w ramce rodzica parametry, czyli podawane do szablonu: {{Code|{{s|Brudnopis|nazwa=Nazwa szablonu}}}}.
* {{Code|__funkcja}} - funkcje, któregoś któraś jest jedna z: {{Code|{{sr|#p["Błędy pudełka"]|Błędy pudełka|p=Pudełko/Tom IV}}}}, {{Code|{{sr|#p["Przedmiotowe błędy pudełka"]|Przedmiotowe błędy pudełka|p=Pudełko/Tom IV}}}} i {{Code|{{sr|#p["Dyskusyjne błędy pudełka"]|Dyskusyjne błędy pudełka|p=Pudełko/Tom IV}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
94gu497lfb4fxrm9k09s0crlsplvecz
Wikibooks:Moduły/StronicowyParser/SpisTreści/Tom I
4
63522
560308
560278
2026-10-29T15:22:31Z
Persino
2851
/* Definicja tablicy: {{Code|tab_stare}}, inicjowanie jej elementów w różnych przypadkach */
560308
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|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 lokalne ==
=== {{Śródtytuł|Ile}}{{Code|Ile}} ===
Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow2}} {{Patrz|tabela_rozdzial_artykulow2}}, licząc od drugiej tabeli, po pierwszej tabeli mieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami.
Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w takich rozdziałach {{ZobaczTeż|przetłumaczone rozdziały}} przetłumaczonych na małą literę, ale przedtem na niego była działana funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, usuwając z nich odstępy na końcach, w tym dolne myślniki, a wewnątrz zamieniając kolejne dolne myślniki i spacje na jedną spację.
Metafunkcja, w metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}, aby porównać to z tablicą {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}}, by zaliczyć je do tego typu:
<syntaxhighlight lang="lua">
p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={
["licencja"]=true,
["inne"]=true,
["bibliografia"]=true,
["zobacz też"]=true,
["linki zewnętrzne"]=true,
};
</syntaxhighlight>
Musimy wykorzystać tak przetłumaczone rozdziały {{LinkZobaczTeż|przetłumaczone rozdziały}}, przy pomocy tej metatabelki, czy one zgadzają się z tą tablicą.
Te rozdziały należą do kategorii rozdziałów, w których artykuły są pomijane przez: '''{{ld|StronicowyParser|Stronicowy parser}}''', ale jeżeli one należą do rozdziału spisu treści lub rzeczy, to tam jednak nie są takie, inaczej jest poza.
A od: {{Code|7}} do {{Code|13}}, znajdują się podtabele z artykułami, które już należą już tam, czyli wtedy te drugie {{Code|6}} tabel.
A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a jego opis w: {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|numer_rodzaju_artykulu}} | _1 = Numer podtabeli elementtu, do którego wsadzamy element.
| 2 = {{Code|tabela_rozdzial_artykulow2}} | _2 = Tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}}.
}}
=== {{Śródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}{{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} ===
==== Opis pobieżny funkcji ====
Funkcja do wstawiania elementów z ogólnej tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, za pomocą funkcji wstawianej jako parametr: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{Patrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, do odpowiedniej pozycji artykularnej od: {{Code|2}} do {{Code|13}}, a pozycja {{Code|1}}, to pozycja rozdziałowa, ona jest określana przez zmienną: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{Patrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, a pozycja, którą wsadzamy to: {{Code|tab_stare}} {{Patrz|tab_stare}}.
Funkcja zwraca pozycje:
<syntaxhighlight lang="lua">
return numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych;
</syntaxhighlight>
Opis tych parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|numer_rodzaju_artykulu_poprz}} {{Patrz|numer_rodzaju_artykulu_poprz}} | _1 = Jest to wartość zwrócona przez funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}}, w odróżnieniu od: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, jest mniejszy o jeden, czyli wtedy to była a poziomie przypisywania wartość {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}},
| 2 = {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{Patrz|tab_pozycja_elementow_w_spisie_rzeczy}} | _2 = Pierwsza artykularna zmienna zwrócona przez funkcję {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}.
| 3 = {{Code|tablica_artykulow_zebranych}} {{Patrz|tablica_artykulow_zebranych}} | _3 = Tablica do sprawdzania, czy artykuł z nagłówkiem, ma powtórzenie tego bez nagłówka, czyli dla tego bez tego jest inna numeracja niż z nagłówkiem, a gdy niema tego bez, to wtedy dzięki tej funkcji numeracja tak się zachowuje, jak tam by był ten element, co prawda jest tam dodawany, ale jako z informacją taką, że bz numeru ustalanym przez funkcję: {{LinkŚródtytuł|Ile}}, A przy okazji, aby tego elementu nie dodawać ponownie, to w nim jest ustalana druga zmienna na {{Code|1}}, a wcześniej była na {{Code|0}}, i dlatego ona była wtedy dodawana, a później już tak nie jest.
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY,tabela_rozdzial_artykulow2,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]])...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|self}} {{Patrz|self}} | _1 = Zmienna obiektowa funkcji, z pominięciem, której funkcję można napisać zamiast {{Code|p.}} {{Patrz|p.}} jako {{Code|p:}} {{Patrz|p:}}.
| 2 = {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} | _2 = Opis jest jak w: {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
</syntaxhighlight>
Funkcja jest wywoływana w:
<syntaxhighlight lang="lua">
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana),tabela_rozdzial_artykulow,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow);
</syntaxhighlight>
Gdzie funkcja: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, to jest: {{LinkŚródtytuł|WsadzanieParametryDoTablicy}}.
| 3 = {{Code|tabela_rozdzial_artykulow2}} | _3 = Ta tabela działa według opisu jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}}.
| 4 = {{Code|tablica_artykulow_zebranych}} | _4 = Diała jak w: {{LinkPatrz|tablica_artykulow_zebranych}}.
| 5 = {{Code|wliczaj_artykuly_tego_rozdzialu}} {{Patrz|wliczaj_artykuly_tego_rozdzialu}} | _5 = Jak przybiera odpowiadającą wartość fałszywą, to do: {{LinkPatrz|numer_rodzaju_artykulu}}, dodawane jest {{Code|6}}.
| 6 = {{Code|szablon}} {{Patrz|szablon}} | _6 = Jest to tekst zakodowany całego linku wewnętrznego, czy zewnętrznego, czy linku inteligentnego w postaci szablonu.
| 7 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - | _7 = Kolejno to jest: '''nazwa przestrzeni nazw''', '''nazwa przestrzeni książki''' i '''nazwa książki'''.
| 8 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _8 = Jest to nazwa artykułu danego spisu treści.
| 9 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _9 = Uchwyt do bazy kodowania tekstu strony spisu treści.
| 10 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _10 = Nazwa strony szablonowa, jak są wywoływane w postaci szablonowej, gdzie są rozwijane adresy względne stron, poczytaj: {{lr2|Moduły/StronicowyParser/Rozdziały}} {{Patrz|Moduły/StronicowyParser/Rozdziały}}.
| 11 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _11 = Uchwyt do tablicy bazy kodowania zapisany w samej bazie dla danego artykułu, używany zamiast:{{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 12 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _12 = Tablica bazy zapisana w postaci osobnej tablicy, a nie jej w wewnętrznej bazie, nie jak to było w postaci zmiennej {{LinkPatrz|nazwa_modulu}}, używana zamiast: {{LinkPatrz|nazwa_modulu}}.
| 13 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _13 = Tablica rozłożeń zmiennej {{Code|szablon}}, dla zmiennych szablonowych, i dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}.
| 14 = {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} | _14 = Obiekt i kod, czyli: zmienne charakteryzujące zmienną wnętrza: {{Code|szablon}} {{LinkPatrz|szablon}}.
| 15 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _15 = Tablica przekierować, aby nie rozpatrywać tego samego przekierowania wiele razy.
| 16 = {{Code|przedrostek_listy}} {{Patrz|przedrostek_listy}} | _16 = Tekstowy przedrostek listy z przedziału znaków: {{Code|<nowiki>[;%*:#]+</nowiki>}} {{Patrz|wzor_do_linii_z_lista}}, rozpoczynających pojedyncza linię.
| 17 = {{Code|tekstowy_przedrostek}} {{Patrz|tekstowy_przedrostek}} | _17 = Numeracja rozdziału, z jakim rozpoczyna się rozdział.
| 18 = {{Code|w_rozdziale}} {{Patrz|w_rozdziale}}} | _18 = Gdy link znajduje się w rozdziale dodatnim.
| 19 = {{Code|linia_artykokow}} {{Patrz|linia_artykokow}} | _19 = Cała linia z artykułem lub artykułami, tą linią równie dobrze może być rozdział, tu chodzi o rozdział dodatni.
}}
==== Opis pobieżny funkcji {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} ====
Przedstawiamy tutaj funkcję: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, która jest opisana w punkcie: {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
Definicja funkcji w nagłówku:
<syntaxhighlight lang="lua">
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tabela_rozdzial_artykulow2}} | _1 = Jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}},
| 2 = {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} | _2 = Jak w: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}},
| 3 = {{Code|tab_stare}} | _3 = Jak w: {{LinkPatrz|tab_stare}}.
}}
Ta funkcja została opisana już wcześniej.
==== Szczegółowy opis funkcji głównej ====
Uruchamiamy funkcję {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, która jest zdefiniowana w module: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}.
Wywołujemy tę funkcję:
<syntaxhighlight lang="lua">
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nil,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych);
</syntaxhighlight>
Pierwszy zwracanym elementem: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, jest to zmienna tablicowa, która opisuje parametry artykularno-linkowe, drugi: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, do której kategorii należy dany artykuł w linku, a trzeci parametr, to: {{Code|id}} {{Patrz|id}}, to zbierane są parametry linkowe z szablonu {{s|SpisTreści}}, czwarty to: {{Code|parametry_szablonu}} {{Patrz|parametry_szablonu}}, w przypadku szablonów inteligentnych linków, to są parametry wywołań tych szablonów, ostatni parametr to: {{Code|kom}} {{Patrz|kom}}, przedstawia on, jeśli {{Code|false}}, to artykuł zakwalifikowany został poprawnie do rozważań, a {{Code|true}} już nie.
To {{LinkPatrz|parametry szablonu}}, to jest tablica z trzech elementów, tzn.:
<syntaxhighlight lang="lua">
local parametry szablonu={tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,};
</syntaxhighlight>
Elementy tablicy:
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tablica parametrów uzyskanych z argumentów, i ich wartości, nazwanych i nienazwanych.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = To jest nazwa uzyskanego szablonu linków inteligentnych lub nie.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela modyfikatorów rozkładanego szablonu.
}}
Jeśli parametr: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, istnieje, to tworzona jest z niego taka sama wersja lub przy nieistnieniu parametru {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, do niego jest dodawana jest liczba {{Code|6}}. W ten sposób możemy zbierać artykuły książki i inne, które należą do pewnych rozdziałów i które nie należą.
===== {{Śródtytuł|ParametrPierwszy}}{{Code|ParametrPierwszy}} =====
Funkcja zbierające dane z {{Code|tab_artykul}} {{Patrz|tab_artykul}}, którego to jest czteroelementowa tablica, dotycząca danego artykułu. Drugim parametrem: {{Code|czy_niedozwolone}} {{Patrz|czy_niedozwolone}}, jest zmienna logiczna mówiąca, czy wskazać w nazwie artykułu, czy są dozwolone znaki, jest to sprawdzenie według wyrażenia regularnego: {{Code|<nowiki>[|<>{}%[%]]</nowiki>}} {{Patrz|wzor_znaki_niedozwolone}} na podstawie funkcji {{LzLua|mw.ustring.match}}, czyli: {{Code|znaki_niedozwolone}} {{Patrz|znaki_niedozwolone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
ParametrPierwszy(tab_artykul,czy_niedozwolone)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tab_artykul}} | _1 = Jak w: {{LinkPatrz|tab_artykul}}.
| 2 = {{Code|czy_niedozwolone}} | _2 = Jak w: {{LinkPatrz|czy_niedozwolone}}.
}}
Gdzie: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul}}, który jest pierwszym parametrem przyjmowanym przez funkcję, jest zdefiniowany jako czteroelementowa tablica, którą przypisujemy do czterem osobnych parametrów:
<syntaxhighlight lang="lua">
local artykul=tab_artykul[1];
local parametry=tab_artykul[2];
local naglowek=tab_artykul[3];
local tablica_przekierowania=tab_artykul[4];
</syntaxhighlight>
Jeżeli, któreś z parametrów z: {{LinkPatrz|tab_artykul}}, tzn. element jego {{Code|2}}-gi i {{Code|3}}-ci, istnieje, to układana jest trzyelementowa tablica z elementów od {{Code|1}} do {{Code|3}}, z dodatkowym elementem: {{Code|<nowiki>["LINK"] = true</nowiki>}}, a element czwarty to jest: {{Code|tablica_przekierowania}} {{Patrz|tablica_przekierowania}}, a jeżeli te dwa elementy, nie licząc czwartego, wcale nie istnieją, wtedy jest tworzony łańcuch znakowy z tego pierwszego elementu. Tak tworzymy, nową wersję tablicy: {{Code|tab_artykul}} {{Patrz|tab_artykul-nowa wersja}}, lub łańcuch znakowy, w postaci:
<syntaxhighlight lang="lua">
tab_artykul=((artykul)and(parametry or naglowek))and{[1]=artykul,[2]=parametry,[3]=naglowek,["LINK"]=true,} or artykul;
</syntaxhighlight>
Funkcja zwraca trzy parametry, tzn. parametry: {{LinkPatrz|tab_artykul-nowa wersja}}, {{LinkPatrz|znaki_niedozwolone}} i tablicę przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, co skrótowo piszemy: {{Patrz|zwracane-ParametrPierwszy}}:
<syntaxhighlight lang="lua">
return tab_artykul,znaki_niedozwolone,tablica_przekierowania;
</syntaxhighlight>
===== Rozwijanie nazwy linku artykułu =====
Do rozwijania nazwy linku służy funkcja: {{Code|{{sr|#p.DekodowanieTekstuNazwLinku|p=StronicowyParser/Pomocne}}}} {{Patrz|p.DekodowanieTekstuNazwLinku}}, pod względem szablonowym i nie tylko.
Funkcja rozwija tą nazwę tym: {{LzLua|frame:preprocess}}, jedynie nie rozwija szablonów stronicowego parsera, podane podkategoriach w kategorii: {{Code|{{lk2|Szablony stronicowe}}}}, za pomocą odpowiednich metod, bo to by wywołało nieskończoną pętle, i dlatego takie szablony są zamieniane tylko na wywołania symboliczne.
==== Dalszy opis funkcji nadrzędnej przy istnieniu parametrów linkowych normalnych, czy szablonowych (linków inteligentnych) ====
===== Gdy: {{Code|numer_rodzaju_artykulu_poprz}} {{Code|{{=}}}} {{Code|1}} =====
Tworzony jest numerek: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{Patrz|numer_rodzaju_artykulu_w_podreczniku}}, który w stosunku do: {{LinkPatrz|numer_rodzaju_artykulu}}, jest większy o jeden, a schemat tej operacji:
<syntaxhighlight lang="lua">
local numer_rodzaju_artykulu_w_podreczniku=numer_rodzaju_artykulu+1;
</syntaxhighlight>
====== Tworzenie tablicy: {{nobold|{{Code|tablica_artykulow_zebranych}}}} ======
Opiszemy tutaj tablicę: {{Code|tablica_artykulow_zebranych}}, opisaną wstępnie w punkcie: {{LinkPatrz|tablica_artykulow_zebranych}}.
; Tablica{{dk}} {{nobold|{{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}}}, nie jest tablicą{{dk}}
Gdy element pierwszy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, nie jest tablicą, wtedy jedynie liczymy, czy ona ma znaki niedozwolone: {{Code|wzor_znaki_niedozwolone}} {{LinkPatrz|wzor_znaki_niedozwolone}}, a póżniej wiedząc ten element, który jest aktualną nazwą artykułu kiążki, tworzymy tabelę: {{ZobaczTeż|tablica_artykulow_zebranych-inicjacja}}:
<syntaxhighlight lang="lua">
tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
</syntaxhighlight>
; Gdy element{{dk}} {{nobold|{{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}}}, jest łańcuchem znaków{{dk}}
Wpierw liczone są parametry z wywołania, z opcją, czy ma liczyć, czy nazwa artykułu ma znaki niedozwolone, z funkcji: {{LinkŚródtytuł|ParametrPierwszy}}:
<syntaxhighlight lang="lua">
tab_pozycja_elementow_w_spisie_rzeczy[1],znaki_niedozwolone,tablica_przekierowania=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],true);
</syntaxhighlight>
; Inna książka - atrybut, tzn. czy artykuł wychodzi poza daną książkę, lub jego przekierowanie w niej kieruje na stronę poza nią{{dk}}
Dalej sprawdzane jest, czy książka przyjmuje atrybut, tzn.: '''czy inna książka''', wtedy liczymy to z kodu z tablicy przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, jeżeli jej wartość istnieje, tzn.: {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}}:
<syntaxhighlight lang="lua">
local czy_inna_ksiazka=tablica_przekierowania and tablica_przekierowania[1] and tablica_przekierowania[1][5] or nil;
</syntaxhighlight>
; Tablica przekierowania artykułu względem bieżącej książki{{dk}}
Element: {{Code|<nowiki>[1][5]</nowiki>}}, to jest element tablicy: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, który przedstawia, czy to jest artykuł bieżącej książki, którego przekierowanie kieruje, wtedy ten parametr ma wartość {{Code|true}}, a gdy adres przekierowania wskazuje na inną książkę, wtedy {{Code|false}}. Jeśli ten parametr ma wartość fałszywą, wtedy jest sprawdzane, czy jest tablicą w: {{Code|czy_tablica}} {{Patrz|czy_tablica}}, według:
<syntaxhighlight lang="lua">
czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
</syntaxhighlight>
Lub w przeciwnym wypadku liczymy parametry artykularne z tablicy przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, a jeżeli parametry lub nagłówek przekierowania, w tej tablicy, istnieje, wtedy parametr: {{Code|czy_tablica}} {{LinkPatrz|czy_tablica}}, przyjmuje wartość {{Code|true}}, w przeciwnym wypadku wartość fałszywą.
Gdy ten element nie jest tablicą, to tworzona jest nazwa pełna artykułu: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}} i umieszczana w tablicy: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, w sposób, co dalej jest tworzona w dalszych operacjach tablica: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, z podobną tablicą początkową jak w poprzednim przypadku jego tworzenia, czyli jak w: {{LinkZobaczTeż|tablica_artykulow_zebranych-inicjacja}}.
; Tablica zebranych artykułów i porównywanie artykułu z nagłówkiem, czy istnieje wcześniejszy artykuł bez niego{{dk}}
Gdy element jest jednak tablicą, też jest liczona pełna nazwa artykułu (gdy nazwa artykułu przekierowania istnieje, wtedy ona jest liczona z: {{Code|tablica_przekierowania[2]}}, w przeciwnym wypadku, jeśli element: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}, jest tablicą, wtedy liczymy ją z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1][1]}}, w innym wypadku z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}), a z niej liczymy tablicę: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, jak w: {{LinkZobaczTeż|tablica_artykulow_zebranych-inicjacja}}, w przypadku pierwszego artykułu nienagłówkowego.
A w przypadku pierwszego artykułu, który może być tylko z nagłówkiem, bo tego bez, w spisie, artykuł poprzedni nie istnieje, a więc tego tam nie ma tam w takim przypadku.
Gdy funkcja napotkała artykuł o takim samym stronie, co poprzednio, to do wartości początkowej, bez definiowania jeszcze raz tej samej tablicy, jest ustawiane odpowiednio:
<syntaxhighlight lang="lua">
tablica_artykulow_zebranych[3]=true;
</syntaxhighlight>
Co informuje, że artykuł jest ten sam, tylko inny nagłówek niż poprzedni, a poprzedni pierwszy jest bez niego.
====== Rozwijanie nazwy linku ======
Kompletowany jest drugi element tablicy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, rozwijając szablony w nim względem funkcji: {{LinkPatrz|p.DekodowanieTekstuNazwLinku}}. Dalej z tej nazwy są usuwane znaki specjalne według funkcji: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, z modułu: {{Code|{{ld2|Specjalne}}}}. Następnie działamy funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, które końcowe spacje usuwa, a wewnętrz powtarzające zamienia kolejne na jedną spację.
====== Dodawanie do tablicy problemów, jeśli nastąpił problem ze znakami niedozwolonymi ======
A między czasie, gdy mamy niedozwolone znaki: {{Code|znaki_niedozwolone}} {{LinkPatrz|znaki_niedozwolone}}, za pomocą funkcji pytającej sprawdzamy, czy element inny zgłoszeniowy został dodany do tablicy problemów: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, aż w końcu dodajemy ten problem, jeśli go nie ma przy pomocy funkcji: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
====== {{Śródtytuł|inicjacja_i_kompletowanie_zmiennych}}Ustalanie nazwy jednostki, kompletowanie linii artykułów i inicjowanie pozycji, w tabeli zebranych elementów, w tabeli zebranych elementów ======
Ustalamy nazwę jednostki z funkcji: {{Code|{{sr|#p.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem|p=StronicowyParser/Potrzebne}}}}, i inicjujemy tą wartością, czyli: {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, wartość starą: {{Code|stara_nazwa_jednostki}} {{Patrz|stara_nazwa_jednostki}}, według:
<syntaxhighlight lang="lua">
---- Piszanie pełnej nazwy jednostki bez parametrów i nagłówka;
local nazwa_jednostki=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
---- Inicjowanie starej wartości tą policzoną;
local stara_nazwa_jednostki=nazwa_jednostki;
</syntaxhighlight>
Dalej {{Śródtekst|uchwyt=tabela_rozdzial_artykulow2|tekst=inicjujemy pozycję, jeżeli nie istnieje taka, na podstawie policzonej wartości: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, w tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}}}, według:
<syntaxhighlight lang="lua">
if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku])then tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku]={};end;
</syntaxhighlight>
Co {{Śródtekst|uchwyt=linia_artykokow|tekst=dalej linię artykułów {{Code|linia_artykokow}} {{LinkPatrz|linia_artykokow}}, kompletujemy, funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, z modułu: {{Code|{{ld2|Szablonowe}}}}, znając tablicę: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}}}, według:
<syntaxhighlight lang="lua">
linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
</syntaxhighlight>
====== Uwzględnianie niepodanego elementu nienagłówkowego w tablicy zebranych parametrów ======
Gdy tablica przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, istnieje, wtedy sprawdzamy, czy zmienna logiczna: {{Code|czy_tablica}} {{LinkPatrz|czy_tablica}}, jest prawdą i czy: {{Code|stara_nazwa_jednostki}} {{LinkPatrz|stara_nazwa_jednostki}}, czy jest nie pusta, w takim razie jej element: {{Code|<nowiki>[2]</nowiki>}}, przydzielany jest do zmiennej: {{Code|przekierowanie}} {{Patrz|przekierowanie}}, czyli parametrów nazwy artykułu przekierowania.
Inicjujemy nową zmienną: {{Code|przekierowanie}} {{LinkPatrz|przekierowanie}}, z artykułu, parametrów i nagłówka, ale wpierw sprawdzamy, czy dwa ostatnie istnieją, według:
<syntaxhighlight lang="lua">
przekierowanie=przekierowanie and ((tablica_przekierowania[3] or tablica_przekierowania[4]) and {przekierowanie, tablica_przekierowania[3], tablica_przekierowania[4],["LINK"]=true,} or przekierowanie) or nil;
</syntaxhighlight>
Tworzony jest nowy element: {{Code|nazwa jednostki}} {{Patrz|nazwajednostki-nowy}}, z: {{LinkPatrz|nazwa jednostki}}, parametrów i nagłówka, według rysu:
<syntaxhighlight lang="lua">
nazwa_jednostki={nazwa_jednostki, tab_pozycja_elementow_w_spisie_rzeczy[1][2], tab_pozycja_elementow_w_spisie_rzeczy[1][3],["LINK"]=true,};
</syntaxhighlight>
Jeżeli parametr drugi: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, a trzeci jej jest: {{Code|false}}, wtedy kreujemy tablicę: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
Wsadzamy element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do zbioru: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, przy pomocy funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
Następnie jej drugiemu elementowi: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, dawana jest wartość {{Code|1}}, aby nie dało się ponownie tworzyć i wsadzać element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycji: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, według funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, odpowiedzialny za artykuł nienagłówkowy, którego nie ma w spisach treści książki, ale są one w wersji nagłówkowej.
Jeżeli tablica przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, jednak nie istnieje, wtedy tak samo sprawdzamy, co poprzednio potem, ale po spełnieniu tych warunków robimy inną tablicą: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, i tę tablicę robimy podobnie, i inicjujemy te same elementy też podobnie.
====== Uwzględnianie pozycji podanej w tablicy zebranych elementów ======
Tworzymy zmienną: {{Code|ile_dodac_do_poziomu_artykulu}} {{Patrz|ile_dodac_do_poziomu_artykulu}}, z drugiego elementu tablicy: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, następnię tworzymy inną zmienną: {{Code|ile_dodac_do_poziomu_artykulu_lub_nil}} {{Patrz|ile_dodac_do_poziomu_artykulu_lub_nil}}, co uwidaczniamy wzorem:
<syntaxhighlight lang="lua">
local ile_dodac_do_poziomu_artykulu_lub_nil=((ile_dodac_do_poziomu_artykulu)and(ile_dodac_do_poziomu_artykulu>0))and ile_dodac_do_poziomu_artykulu or nil;
</syntaxhighlight>
Tą zmienną wykorzystamy do sformułowania: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
{{Śródtekst|tekst=Tworzymy zmienną: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, którą wsadzamy do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycji: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, przy pomocy funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.|uchwyt=__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}
===== Gdy: {{Code|numer_rodzaju_artykulu_poprz}} {{Code|>{{=}}}} {{Code|2}} =====
Będziemy tutaj operowali, gdy parametr drugi zwracany z funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, wskazuje na nie artykuł książki, zatem ten rozdział jest właśnie dla tego przypadku.
====== Odkodowanie i przygotowanie zmiennych artykułu linku, jej nazwy, także kodu języka i projektu ======
* Gdy pierwszy element tablicy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, jest tabelką, wtedy do przetworzenia jego wykorzystujemy funkcję: {{LinkŚródtytuł|ParametrPierwszy}}.
* Dla drugiego takiego elementu z tego, co jest nazwą linku, wtedy gdy nazwa linku normalnego, czy szablonowego, jest zakodowana, to ją odkodujemy, którego każdy jego element kod odkodujemy według funkcji: {{LinkPatrz|p.DekodowanieTekstuNazwLinku}}, następnie z niej usuwamy znaki specjalne według: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, następnie usuwamy końcowe spacje i wewnątrz kolejne spacje zastępujemy jedną spacją, co robimy według: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
* Dla trzeciego i czwartego takiego elementu, to jest kolejno kod języka i projektu, z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, te elementy odkodujemy, następnie z nich usuwamy końcowe spacje, a wewnątrz kolejne spacje zastępujemy jedną, według tej samej funkcji, co powyżej.
====== Przygotowanie zmiennych, inicjowanie tablicy: {{Code|tab_stare}}, i wsadzanie jej do tablicy ogólnej: {{Code|tabela_rozdzial_artykulow2}} ======
Dalej {{PobierzŚródtekst|tabela_rozdzial_artykulow2}}, także co {{PobierzŚródtekst|linia_artykokow}}, co wszystko robimy podobnie jak w rozdziale: {{LinkŚródtytuł|inicjacja_i_kompletowanie_zmiennych}}.
{{PobierzŚródtekst|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}
==== Definicja tablicy: {{Code|tab_stare}}, inicjowanie jej elementów w różnych przypadkach ====
Przedstawiamy tutaj ogólną definicję zmiennej: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, które określają ogólnie jaką jego wersję użyć w poszczególnych punktach funkcji: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}. Ta wersja jest jedynie sformułowana dla artykułów w rozdziale, a nie dla rozdziałów, bo w tablicy, do której jest ona wsadzana przyjmuje ona możliwy numerek od "2" do "13", a nie również "1". Jej wersja ogólna:
<syntaxhighlight lang="lua">
local tab_stare=
{
---- Początek elementów alternatywnych
{
---- Początek wersji dla artykułu
tab_pozycja_elementow_w_spisie_rzeczy[1], -- artykuł bez pełnej nazwy ksiązki, bez parametrów i nagłówka, bo ich nie posiadałna samym początku;
---- lub
{
tab_pozycja_elementow_w_spisie_rzeczy[1][1], -- artykuł bez pełnej nazwy książki, bez parametrów i nagłówka;
tab_pozycja_elementow_w_spisie_rzeczy[1][2], -- parametry artykułu, z którym on został wywołany w linku;
tab_pozycja_elementow_w_spisie_rzeczy[1][3], -- nagłówek strony, wstawiany po parametrach lub nazwie strony;
["LINK"]=true, -- zmienna świadcząca, że nazwa artykułu jest z parametrami i nagłówkiem;
},
---- Koniec wersji dla artykułu
tab_pozycja_elementow_w_spisie_rzeczy[2], -- nazwa linku artykułu normalnego, czy szablonowego;
---- Początek elementów alternatywnych dla przekierowania
---- Poczatek parametrów przekierowania
{
tablica_przekierowania[2], -- nazwa przekierowania artykułu;
tablica_przekierowania[3], -- parametry przekierowania artykułu;
tablica_przekierowania[4], -- nagłówek przekierowania artykułu;
["LINK"]=true, -- zmienna świadcząca, że nazwa przekierowania artykułu jest z parametrami i nagłówkiem;
},
---- lub
tablica_przekierowania[2], -- nazwa przekierowania artykułu;
---- Koniec parametrów przekierowania
tablica_przekierowania[1], -- tablica o definicji, którego przedstawienie:
{
nazwa_przestrzeni_strony_przekierowania, -- nazwa przestrzzeni nazw przekierowania artykułu;
nazwa_przestrzeni_ksiazki_strony_przekierowania, -- nazwa przestrzeni książki przekierowania artykułu;
nazwa_ksiazki_strony_przekierowania, -- nazwa książki orzekierowania artykułu;
true/nil, -- true, gdy strona jest przekierowaniem, gdy strona główna jest taka, lub przekierowanie wskazuje na tą samą książkę, chociaż ono jest w innej;
true/false, -- true, gdy przekierowanie wskazuje na artykuł w taj samej książce, false, gdy nie;
czy_przekierowanie, -- (true/false): true - gdy strona, nie główna podręcznika, jest przekierowaniem, false - jak nie, to strona główna książki;
};
-- koniec przedstawienia;
---- lub
nil, -- dotycząca przekierowania artykułu, a tutaj strona nie ma przekierowania, więc: nil;
nil, -- dotycząca tablicy książki, na którą wskazuje przekierowanie, a tutaj nie ma tablicy, więc: nil;
---- Koniec elementów alternatywnych dla przekierowania
tab_pozycja_elementow_w_spisie_rzeczy[3], -- kod języka;
tab_pozycja_elementow_w_spisie_rzeczy[4], -- kod projektu;
tab_pozycja_elementow_w_spisie_rzeczy[5], -- adres artykułu bez przetworzenia w linku normalnym,czy szablonowym;
ile_dodac_do_poziomu_artykulu_lub_nil, -- parametr mający tylko wartości: 1, gdy do aktualnego poziomu musi być dodane jeden - ta wartość, tylko dotyczy artykułów należących do tej samej książki, lub: nil, gdy nic, czyli w pozostałych przypadkach;
tab_pozycja_elementow_w_spisie_rzeczy[6], -- "url", pozycja świadcząca, że to jest link zewnętrzny, a nil, gdy to jest normalny link;
},
---- lub
tab_pozycja_elementow_w_spisie_rzeczy[1], -- nazwa artykułu linku, która nie posiada, ani parametrów w sobie, a po nim nagłówka, lub bezpośrednio po nazwie;
---- lub
{
tab_pozycja_elementow_w_spisie_rzeczy[1][1], -- nazwa artykułu bez parametrów i nagłówka;
tab_pozycja_elementow_w_spisie_rzeczy[1][2], -- parametry artykułu, z którym on został wywołany w linku;
tab_pozycja_elementow_w_spisie_rzeczy[1][3], -- nagłówek strony, wstawiany po parametrach lub nazwie strony;
["LINK"]=true, -- zmienna świadcząca, że nazwa artykułu jest z parametrami i nagłówkiem;
},
---- Koniec elementów alternatywnych
{
#przedrostek_listy, -- poziom listy, w którym jest artykuł, dla artykułów w linii z listą, w innym wypadku dla artykułu znajdującego się w rozdziale dodatnim, czy ujemnym jest zero;
przedrostek_listy, -- przedrostek listy w postaci wzoru, który jest w nawiasie we wzorze do przechwytywaniem: "\n([;%*:#])", przeciwnie dla artykułów w rozdziale dodatnim ma wartość pustą;
tekstowy_przedrostek, -- numeracja dodatkowa w rozdziale dla artykułu, gdy nie ma takiej numeracji, bo nie da się jej wydzielić, to ma wartość pustą;
w_rozdziale, -- czy artykuł jest w rozdziale dodatnim normalnym, czy centrowanym znacznikowym lub szablonowym, wtedy "true", w przeciwnym wypadku: "false";
},
linia_artykokow, -- skompletowana linia z artykułem, dla którego jest pozycja: "tab_stare";
true/false, -- true, gdy nazwa artykułu pochodzi bezpośrednio od szablonu {{SpisTreści}}, a w przeciwnym wypadku ma wartość: false;
true/false, -- true, gdy artykuł pochodzi z tego samego podręcznika, przeciwnie: false;
---- Początek elementów alternaatywnych
Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2), -- który numer artykułu, w momencie wsadzenia do tabeli zbierania rozdziałów i w nich artykułów, nawet w rozdziale;
---- lub
nil, -- nil, wtedy gdy link jest tak sobie dodany, który nie należy do żadnego spisu, a po nim elementy jego z nagłówkiem natomiast należą;
---- Koniec elementów alternatywnych
};
</syntaxhighlight>
W powyższym: {{Tag|syntaxhighlight|parametry=lang="lua"}}, dla elementu: {{Code|<nowiki>---- lub</nowiki>}}, jest powiedziane, że są dostępne alternatywy, które są zawarte w tablicy, że wybieramy te, aby nie spowodować czysto podwójnej tablicy, aby każda tablica zawierały inne elementy, jak wiele, a nie jedną tablicę, jak i łańcuchy znaków, wartość nil, powoduje, że czy ma być taka tablica, ale nie podwójna, co to znaczy podowójna, tzn. tablica w sobie zawiera inną jedyną tablicę, a tak nie może być, a jak zawiera jedną tablicę, to musi posiadać inne nienilowe elementy.
== Funkcje tablicy transportu ==
=== {{Śródtytuł|p.AnalizaNapisuWprowadzeniaTekstu}}{{Code|p.AnalizaNapisuWprowadzeniaTekstu}} ===
Funkcja przyjmuje jako parametr nieskompletowaną i nieprzetworzony tekst napisu wprowadzenia tekstu. On kompletuje i przekształca go w odpowiedni sposób, aby otrzymać czysty tekst tytułu rozdziału.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Ten tekst tytułu rozdziału, o którym mówimy.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci}}
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
}}
==== Obiekty typu {{nobold|{{Code|SZABLON}}}} ====
Funkcja korzysta z funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, funkcja ma zdefiniowaną pierwszą jej funkcję, która dla: {{Code|obiekt {{=}} "SZABLON"}}, używamy pierwsze dwie tabelę, te tabele:
Pierwsza, która służy do zamieniania szablonów na ich parametry, tutaj pierwsza, to jest tablica: {{Code|{{sr|#p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu={
["MDL:RozszerzonyLink"]=1,
["Kompletność"]="",
["Kompletność krótka"]="",
["Kompletność junior"]="",
["Książka"]="",
};
</syntaxhighlight>
Druga: {{Code|{{sr|#p.szablony_dozwolone_w_nazwach_linkowych|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_dozwolone_w_nazwach_linkowych}}, też służy do tego samego.
Funkcja wykorzystuje tablice szablonów korekt umieszczonych w nazwie linku, czy to normalnego, czy szablonowego (inteligentnego), którego definicja {{Patrz|p.szablony_dozwolone_w_nazwach_linkowych}}:
<syntaxhighlight lang="lua">
p.szablony_dozwolone_w_nazwach_linkowych={
["Korekta"] =2,
};
</syntaxhighlight>
===== Funkcje zawartości i dodatków, dla szablonów =====
One służą do zamieniania wywołań szablonowych na odpowiednie ich zawartości parametrów określone przez numery parametrów tych elementów w tych tabelach. Jeżeli przy którym wywołaniu przy wykorzystaniu kolejnych tych tabel przy użyciu funkcji: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}, nastąpiło zamienienie, to funkcja pierwsza w: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, zakańcza się z tą wartością. A jeżeli nie to uruchamia się funkcja dodatków: {{Code|{{sr|#p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu|p=StronicowyParser/Rozdziały}}}}, a jeśli nastąpiło zastąpienie, to funkcja kompletowania się kończy z tą wartością.
===== Szablonowe linki =====
Dalej, jeżeli tak się nie stało, to uruchamia się funkcja parametrów, w którym wywołanie szablonowe jest rozkładane na nazwę szablonu, modyfikatory i parametry. Dalej jest sprawdzanie, czy jest to link inteligentny według funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, a gdy jest, to funkcja kończy swoje działania z nazwą tego linku lub jego adresem wewnętrznym, a jeśli on nie jest tym, to sprawdza, czy są inne szablonowe linki, które podejrzewa się, poprzez wywołanie funkcji: {{Code|{{sr|#p.NazwaInnegoSzablonowegoLinkowegoObiektu|p=StronicowyParser/Potrzebne}}}}, a jeżeli jest tym linkiem, to funkcja składania zwraca też jak poprzednio nazwę linku lub jego adres wewnętrzny. A gdy nie, to w innym przypadku sprawdzane, czy to jest inny link wewnętrzny generowany przez szablony, które sprawdza funkcja tutaj: {{Code|{{sr|#p.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli szablon jest tym linkiem, to funkcja składania zwraca jego nazwę linkową.
===== Szablony rozwijane przez {{lpg|JavaScript}} =====
A następnym krokiem jest sprawdzanie, czy nazwa szablonu jest jednych z elementów z tablicy: {{LinkPatrz|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}}, która ma ten element, te szablony wymienione w tej tablicy są po to, aby służyły do rozwijania przez JavaScript, są to elementy wikikodu, które są pracochłonne ze względu na ich skomplikowany kod, czy wikikod, nawet {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, i dlatego ich się nie rozwija przez stronicowy parser: {{Code|{{ld2|StronicowyParser}}}}, te nazwy szablonów są określone tablicą: {{Code|{{sr|#p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu={
["Cytuj"]=true,
["Cytuj stronę"]=true,
["Cytuj pismo"]=true,
["Cytuj odcinek"]=true,
["Cytuj książkę"]=true,
["Cytuj grę komputerową"]=true,
};
</syntaxhighlight>
I funkcja wtedy zwraca skompletowany szablon bez rozwijania jego, pod warunkiem, jeżeli jest tym szablonem o tej nazwę szablonu wywołującego.
===== Co jest zwracane w przypadku szablonów =====
Te powyżej elementy dla funkcji parametrów, w niej wartości są zwracane do niej, a jeżeli ona przyjmuje wartość nienilową, to do funkcji składania zwracana jest jego wartość, a przeciwnie jest zwracane pierwszy parametr szablonu do niej.
==== Obiekty typu: {{nobold|{{Code|NOWIKI}}}}, {{nobold|{{Code|PRE}}}} i {{nobold|{{Code|ŹRÓDŁO}}}} ====
A gdy dla elementów, jeśli nazwa obiektu jest: {{Code|obiekt {{=}} "NOWIKI"}}, {{Code|obiekt {{=}} "PRE"}}, lub: {{Code|obiekt {{=}} "ŹRÓDŁO"}}, znacznik jest rozkładany na czynniki pierwsze, a jeżeli nie ma zawartości, to przez funkcję składania jest zwracana wartość pusta, a jeśli nie, to pewne znaki specjalne tagu {{Tag|nowiki}}, które mają w nim być zamienione na tekst, są zamieniane na kody '''HTML''', co po tym, ta ona jest zwracana.
==== Obiekty typu: {{nobold|{{Code|MATH}}}}, {{nobold|{{Code|GALERIA}}}}, {{nobold|{{Code|MAPAOBRAZU}}}}, i {{nobold|{{Code|INNEPRE}}}} ====
A jeżeli wartość: {{Code|obiekt}}, jest nie równa: {{Code|MATH}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} lub {{Code|INNEPRE}}, wtedy zawartość zmiennej: {{Code|szablon}}, jest wykorzystana przez funkcję z modułu: {{Code|{{ld2|Specjalne}}}}, które w tej podanej zmiennej usuwa komentarze według: {{Code|{{sr|#p["UsuńKomentarze"]|p=Specjalne}}}}. Zamieniane są w nim linki zewnętrzne i wewnętrzne na ich nazwy lub adresy według: {{Code|{{sr|#p["ZamieńLinkiZewnętrzneNaTekst"]|p=Specjalne}}}} i {{Code|{{sr|#p["ZamieńLinkiWewnętrzneNaTekst"]|p=Specjalne}}}}. Są usuwane rozwinięte znaczniki szablonów stylów, używając do tego celu: {{Code|{{sr|#p["UsuńSzablonyStylów"]|p=Specjalne}}}}. To samo jest robione ze znacznikami na podstawie: {{Code|{{sr|#p["UsuńZnaczniki"]|p=Specjalne}}}}. Z tekstu szablonu są kasowane normalne kategorie nieszablonowe: {{Code|{{sr|#p["UsuńKategorie"]|p=Specjalne}}}}. Pozbywamy się, z zawartości, wywołań plików i interwiki, na podstawie: {{Code|{{sr|#p["UsuńWywołaniaPlików"]|p=Specjalne}}}} i {{Code|{{sr|#p["UsuńInterwiki"]|p=Specjalne}}}}. Dalej z tego obiektu są usuwane znaki specjalne na podstawie: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}.
A gdy mamy do czynienia z innymi znacznikami, to są zwracane zamiast nich wartości puste do funkcji kompletowania.
Dane, z funkcji kompletowania, które są zwracane do niej, są usuwane w niej znaki specjalne z całości tekstu rozdziału: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, i znaki białe z końców tekstu. Powtarzające się te znaki kolejne wewnątrz są zamieniane na jedną spację, to się dzieje według funkcji: {{Code|{{sr|#p["UsuńZbędneBiałeZnaki"]|p=Specjalne}}}}.
Cały taki wynik operacji robiony w funkcji w nagłówku jest zwracany do niej, to jest, co uzyskujemy, nazwą rozdziału w postaci przetworzonej.
=== {{Śródtytuł|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}{{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} ===
Opisane tutaj są podfunkcje, z których korzysta ta funkcja, co one robią, do czego są wykorzystane.
==== Opis funkcji: {{nobold|{{Patrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} ====
Funkcja służy do zbierania nagłówków i z niej danych, tzn. linków normalnych i inteligentnych, a także są zbierane nagłówki z listy bez artykułów i do nich elementy podlisty z artykułami w postaci wywołań linkowych w niej. Tworzona jest specjalnie dla tego tablica: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, która w odpowiedni sposób po przekształceniach wsadzana jest do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}.
| 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
| 3 = {{Code|nazwa_spisu_tresci}} | _3 = Jak w: {{LinkPatrz|nazwa_spisu_tresci}}.
| 4 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _4 = Czy dany spis treści dla książki dla jej artykułu korzystanego, dla innej książki, wtedy to artykuł niekorzystany.
| 5 = {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}} | _5 = Jest to wewnętrzny adres książki głównego spisu treści, jest to taki adres, na który wskazuje przekierowanie innej książki.
| 6 = {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{Patrz|__FUNKCJA_ZBIERANIA_DANYCH}} | _6 =
{{Śródtekst|uchwyt=__FUNKCJA_ZBIERANIA_DANYCH|tekst=
Jest to funkcja, która zbiera informacje o aktualnym artykule, która jest spisem treści, w postaci nieprzetworzonej przez funkcje z modułu: {{Code|{{ld2|StronicowyParser/Rozdziały}}}}, opisanego w: {{Code|{{sr|Rozdziały|StronicowyParser - Rozdziały|p=StronicowyParser}}}}, ta funkcja kopiuje, np. tabele danych bazy modułu: {{Code|{{m|Szablonowe}}}}, tzn: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, i tabelę rozkładu elementów w niej na czynniki pierwsze, tzn.: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, co jest napisane w module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, a w dokumentacji: {{Code|{{sr|#p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|p=StronicowyParser/ZbieranieDanychStron}}}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
__FUNKCJA_ZBIERANIA_DANYCH(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona);
</syntaxhighlight>
Funkcja nie zwraca niczego, jest funkcją, zwykłą bezwartościową procedurą, niezwracającą niczego.
}}
}}
==== Funkcje lokalne ====
Funkcja ma w sobie też definicję funkcji lokalnych zdefiniowanej w tej funkcji tutaj opisywanej.
===== {{Śródtytuł|FunkcjaIteratoraTekstuZakodowego}}{{Code|FunkcjaIteratoraTekstuZakodowego}} =====
Funkcja służy do pomijania tego, co nie jest linkiem wewnętrznym, czy zewnętrznym, czyli oznaczone kodami: {{Code|LINKW}} lub {{Code|LINKZ}}, czy nawet szablonem linku inteligentnego, czy innego służącego do generowania spisu treści, do tego celu również używa funkcji: {{LinkŚródtytuł|CzySzablonLinkLubLicencja}}, oraz tego co nie jest w liście określonym wzorem: {{Code|<nowiki>\n([#:*;]+)</nowiki>}}, z możliwym na początku tekstem, ale nie z kodami, w danej pozycji listy, lub co ewentualnie nie może być w możliwej liście, tzn.: {{Code|<nowiki>\n([#:*;]*)</nowiki>}}, ale wtedy musi tam być z tekstem, ale nie z kodami, na początku danej pozycji listy, nawet jeśli to nie jest lista, to też tak samo.
Jeżeli funkcja nie ma kodów linków wewnętrznych, czy to normalnych, czy szablonowych, to się zakańcza z wartością domyślną {{Code|nil}}, w przeciwnym wypadku do sprawdzenia używa do tego funkcji: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}}, do sprawdzania, czy to jest szablon linku, nawet licencji, a jeżeli ta funkcja zwraca wartość {{Code|true}}, to cała funkcja zwraca {{Code|nil}}. Jeżeli oba te sposoby nie dały rezultatu {{Code|true}}, to wtedy funkcja zwraca wartość pustą, czyli określonym ciągiem znakowym o szerokości zerowej.
Funkcja ma w sobie dwie definicje funkcji: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}} i {{LinkŚródtytuł|CzySzablonLinkLubLicencja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FunkcjaIteratoraTekstuZakodowego=function(szablon,obiekt,kod)...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}}.
}}
====== {{Śródtytuł|PomijajLinkiOrazLicencje}}{{Code|PomijajLinkiOrazLicencje}} ======
Funkcja służy do sprawdzania, czy są odpowiednie szablony w kodzie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function PomijajLinkiOrazLicencje(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
Funkcja sprawdza, czy to są szablony spisu treści określone tablicą o kluczach, którymi są nazwy szablonów, z wartościami {{Code|true}}, czyli: {{Code|{{sr|#p.szablony_licencji|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_licencji}}:
<syntaxhighlight lang="lua">
p.szablony_licencji={
["Licencja"]=true,
};
</syntaxhighlight>
Tzn., czy to są szablony ozdobne woluminu, którego tablica: {{Code|{{sr|#p.szablony_ozdobne_stron_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_ozdobne_stron_woluminu}}, jest podobnie zbudowana, co poprzednia:
<syntaxhighlight lang="lua">
p.szablony_ozdobne_stron_woluminu={
["MDL:RozszerzonyLink"]=true,
};
</syntaxhighlight>
A jeżeli to są te szablony, to funkcja zwraca wartość {{Code|true}}.
Jeżeli jednak to nie są te szablony, należy użyć tablic, tak samo zbudowanej jak poprzednie, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
};
</syntaxhighlight>
Lub innej, inaczej zbudowanej niż poprzednie, ale ważne, że ma wartość niefałszywą, czyli taką tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}, jest:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Jak są te nazwy szablonów określone ich kluczami tych tablic, to funkcja zwraca wartość {{Code|true}}. A jeżeli jednak nie, to funkcją: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, jest sprawdzane, czy to jest link inteligentny, nawet przekierowanie, jeżeli link taki jest, to funkcja zwraca wartość w tym wypadku {{Code|true}}. W przeciwnym wypadku, jak nie zwrócił tej wartości, bo taka nie jest nazwa szablonu, to funkcja nic nie zwraca.
====== {{Śródtytuł|CzySzablonLinkLubLicencja}}{{Code|CzySzablonLinkLubLicencja}} ======
Funkcja sprawdzająca za pomocą: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}}, na podstawie parsowania tekstu szablonu funkcją: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, z parsowanym przechwytywanym typem obiektu: {{Code|obiekt}} {{LinkPatrz|obiekt}}, równym {{Code|SZABLON}}. A jeżeli funkcja ta wspomniana w tekście zwróci {{Code|true}}, to funkcja taki obiekt policzy.
Jeżeli liczba policzonych obiektów i znalezionych w wyniku parsowania jest większa od zera, to funkcja w nagłówku zwróci wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local CzySzablonLinkLubLicencja=function(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
===== {{Śródtytuł|iteratorTekstuNaglowka}}{{Code|iteratorTekstuNaglowka}} =====
Jest to funkcja iteratora, którego funkcja zwracana (iterator) zwraca parametry, dla rozdziałów dodatnich i pozycji list.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function iteratorTekstuNaglowka()
... ---- Kod przed zwróceniem iteratora;
return function()
... ---- Ciało funkcji iteratora;
end;
end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = Brak parametrów. | komórka1 = tak
}}
Iterator (funkcja zwracana przez funkcję w nagłówku) zwraca parametry w wyniku kolejnych wywołań:
<syntaxhighlight lang="lua">
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,true/false;
</syntaxhighlight>
Parametry zwracane przez iterator:
{{OpisParametrów
| 1 = {{Code|przedrostek_listy}} | _1 = Przedrostek pozycji listy, dla rozdziałów dodatnich jest wartością pustą.
| 2 = {{Code|tekstowy_przedrostek}} | _2 = Numeracja pozycji w liście lub w nagłówku dodatnim.
| 3 = {{Code|wyzyskane_wywolanie_szablonu_spis_tresci}} | _3 = Jest to rozdział bez numeracji i przedrostka pozycji listy.
| 4 = {{Code|true/false}} | _4 = Wartość {{Code|true}} świadczy o rozdziale dodatnim, a w przypadku innym funkcja zwraca zawsze wartość tą {{Code|false}}, jako ostatni element zwracany.
}}
Funkcja jest przykowana na rozdziałów dodatnich i pozycji list oraz innych linii, dla tego pierwszego funkcja zwraca:
<syntaxhighlight lang="lua">
return "","",wartosc,true;
</syntaxhighlight>
Gdzie {{Code|wartość}} jest to zawartość napisu wprowadzenia tekstu (rozdziału dodatniego).
W przypadku list oraz innych niż rozdziały dodatnie samo wyrażenie regularne {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest okreslone przez wyrażenie:
<syntaxhighlight lang="lua">
local re="([#:*;]*)[^%S\n]*([%d%.]*[^%S\n]*[^\n]+)";
</syntaxhighlight>
Funkcja wykorzystuje funkcję: {{Code|{{sr|#p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu|p=StronicowyParser/Rozdziały}}}}, aby zamienić zawartość pozycji listy na rozdział bez numeracji i numerację, i dlatego ta funkcja zwraca te dwie wartości. Gdy funkcja jak nie znajdzie więcej linii (wyszukań), to zwraca wartość {{Code|nil}} mówiąca o zakończeniu iteracji iteratora, tzn. dane dla iteratora się zakończyły.
===== {{Śródtytuł|LiniaArtykulow}}{{Code|LiniaArtykulow}} =====
Funkcja dla szablonów kompletowania określonym tabelką: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_kompletowania_stron_woluminu}}, o definicji:
<syntaxhighlight lang="lua">
p.szablony_kompletowania_stron_woluminu={
["Kompletność"]=true,
["Kompletność krótka"]=true,
["Kompletność junior"]=true,
["Książka"]=true,
};
</syntaxhighlight>
Rozdziela linię na wiele obsługiwanych podlinii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaArtykulow(linia)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} {{Patrz|linia}} | _1 = Pojedyncza przetworzona linia.
}}
====== {{Śródtytuł|SzablonAnalizujKompletnosc}}{{Code|SzablonAnalizujKompletnosc}} ======
Funkcja sprawdza, czy dane wywołania szablonu, ma swoją nazwę szablonu, która jest nazwą szablonu kompletowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function SzablonAnalizujKompletnosc(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
====== Dalszy opis funkcji ======
Możliwe są dwie opcje, szablon kompletowania jest pierwszy, a drugi drugi, lub odwrotnie. Funkcja obsługuje te oba przypadki. Ona stawia przecinek dla obu wersji ustawień, jeśli potraktować układem link i szablon kompletowania, to wstawiany jest on pomiędzy tymi układami, aby rozdzielić na kolejne podlinie, w liście bez tych znaków pozycji.
Dzielimy to na elementy przy pomocy funkcji: {{LzLua|mw.text.split}}, z opcją jako drugi parametr, aby uwzględniał wyrażenia regularne {{Code|false}}.
W tych rozdzielonych linią tą funkcją dzielącą ciąg znakowy na tabelę, kody '''HTML''' przecinka są zamieniane na zwykły przecinek.
Funkcja zwraca tabelę podzielonej linii na mniejsze podlinie, który można iterować funkcją: {{Code|pairs}} lub {{Code|ipairs}}.
===== {{Śródtytuł|WsadzanieParametryDoTablicy}}{{Code|WsadzanieParametryDoTablicy}} =====
Funkcja z parametrami, która uruchamiana jest inną w: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}, która wstawia tabelę: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do ogólnej tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, ewentualnie do: {{Code|tabela_rozdzial_artykulow}} {{Patrz|tabela_rozdzial_artykulow}} na pozycję {{Code|numer_podtablicy_w_tablicy}} {{Patrz|numer_podtablicy_w_tablicy}}, a dokładniej na: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, w funkcji: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana)
return function(tabela_rozdzial_artykulow2,numer_podtablicy_w_tablicy,tab_stare)
... ---- ciało funkcji.
end;
end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = Jak w: {{LinkPatrz|linia}}.
| 2 = {{Code|czy_linia_uwzgledniana}} {{Patrz|czy_linia_uwzgledniana}} | _2 = Czy linię ma uwzględnić w powiększaniu poziomu o jeden dla artykułu.
}}
Parametry zwracanej funkcji przez tę w nagłówku:
{{OpisParametrów
| 1 = {{Code|tabela_rozdzial_artykulow2}} | _1 = Jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}}.
| 2 = {{Code|numer_podtablicy_w_tablicy}} | _2 = Jak w: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}.
| 3 = {{Code|tab_stare}} | _3 = Jak w: {{LinkPatrz|tab_stare}}.
}}
====== {{Śródtytuł|CzyZaliczac}}{{Code|CzyZaliczac}} ======
Funkcja sprawdza, czy z początkiem linii pozycji listy, bez przedrostka listy, jest z możliwym początkiem z odstępami i po nim cudzysłowem, po którym następują liczby, litery, w takim przypadku linia nie może składać się z tego z początkiem z literami lub cyframi, czyli ze znakami alfanumerycznymi, a po nim ze znakami interpunkcyjnymi. Jeśli to sprawdzenie było pozytywne, funkcja zwraca wartość logiczną odpowiadającą {{Code|true}}, w przeciwnym wypadku jest zwracane {{Code|false}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyZaliczac()...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = Brak parametrów funkcji. | komórka1 = tak
}}
Funkcja zwraca informację, czy daną linię traktować jako rozdział, chodzi tu o pozycje list, a w przypadku rozdziałów dodatnich wiadomo, że one są właśnie, że rozdziałami.
====== Dalszy opis funkcji ======
Funkcja sprawdza w funkcji zwracanej, czy rozważany rozdział jest centrowany danego artykułu, który siedzi pod rozdziałem lub w samym rozdziale, sprawdza, czy artykuł jest w rozdziale, sprawdza, czy linia jest uwzględniana: {{Code|czy_linia_uwzgledniana}} {{LinkPatrz|czy_linia_uwzgledniana}}. Funkcja sprawdza, czy w sekcji, czy w: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, czy istnieje element: {{Code|tab_stare[2]}} {{Patrz|tab_stare[2]}}, i dalszy: {{Code|tab_stare[2][1]}} {{Patrz|tab_stare[2][1]}} - ten element jest to w: {{Code|tab_stare}}, taki: {{Code|#przedrostek_listy}} {{Patrz|#przedrostek_listy}}, a jeżeli to sprawdzenie przeszło pozytywnie, który dla tego jest poziomem listy, lub zerowego rozdziału lub rozdziału dodatniego. Wtedy do: {{Code|tab_stare[2][1]}} {{LinkPatrz|tab_stare[2][1]}} jest ikrementowany on o liczbę jeden, czyli:
Dla każdej linii zmienna: {{Code|nowa_linia}} {{Patrz|nowa_linia}}, przyjmuje wartość {{Code|false}}, wtedy dla przypadku przeciwnego, tzn. gdy mamy rozdział i uwzględniamy artykuły w jednej linii, którym jest rozdział będący pozycją listy, w zmiennej: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, jest ustawiany element: {{Code|tab_stare[2][4]}} {{Patrz|tab_stare[2][4]}}, czyli zmienna: {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}, zaczyna przyjmować wartość {{Code|true}}. Wsadzany jest wtedy do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycję: {{Code|numer_podtablicy_w_tablicy}} {{LinkPatrz|numer_podtablicy_w_tablicy}}, czyli to jest też: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, element {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
Gdy: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}}, gdy jednak przyjmuje wartość {{Code|false}}, wtedy jeśli poziom rozdzialu istnieje lub przedrostek listy: {{Code|#przedrostek_listy}} {{LinkPatrz|#przedrostek_listy}}, jest większy od zera, i istnieje wiele artykułów w pozycji liście, wtedy: {{Code|ile>0}} (patrz na zmienną: {{Code|ile}} {{LinkPatrz|ile}}), lub funkcja: {{LinkŚródtytuł|CzyZaliczac}}, przyjmuje wartość odpowiadające prawdziwej, w taki przypadku zmiennej: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}}, przydzielamy wartość {{Code|true}}, by dalsze artykuły można było wsadzić, do tablicy z nowym rozdziałem. Powiększamy numer rozdziału o jeden, tzn.: {{Code|numer_rozdzialu_w_ksiazce}} {{Patrz|numer_rozdzialu_w_ksiazce}}, wtedy w zmiennej: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}, tabeli rozdziałów i w nich artykułów dla tej pozycji przydzielamy wartość równą tablicy pustej. Liczymy dla tego rozdział z artykułami, z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, czyli obliczamy napis rozdziału, wtedy do pierwszej pozycji tablicy utworzonej w: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, dla miejsca: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, czyli: {{Code|tabela_rozdzial_artykulow}} {{LinkPatrz|tabela_rozdzial_artykulow}}, piszemy:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{-#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,false,},linia,};
</syntaxhighlight>
Gdzie: {{Code|rozdzial_na_tekst}} {{Patrz|rozdzial_na_tekst}}, to policzony rozdział, a {{Code|-#przedrostek_listy}} {{Patrz|-#przedrostek_listy}} to poziom rozdziału ujemnego, i dlatego minus. A: {{Code|przedrostek_listy}}, to znaki początkowe z listy: {{Code|wzor_do_linii_z_lista}} {{LinkPatrz|wzor_do_linii_z_lista}}, a: {{Code|tekstowy_przedrostek}}, to numeracja tego rozdziału. Wartość {{Code|false}} to jest ze ten rozdział nie jest centrowany, a: {{Code|linia}} {{LinkPatrz|linia}}, to wyzyskana linia bez początku pozycji listy. Ustawiamy: {{Code|tab_stare[2][4]}} {{LinkPatrz|tab_stare[2][4]}}, na wartość {{Code|true}} i element: {{Code|tab_stare[6]}} {{Patrz|tab_stare[6]}}, ustawiamy na zero. Tworzymy tablicę pustą na pozycję: {{LinkPatrz|numer_podtablicy_w_tablicy}}, tablicy: {{Code|tabela_rozdzial_artykulow}} {{LinkPatrz|tabela_rozdzial_artykulow}}, i do tej tablicy dodajemy: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, za pomocą funkcji: {{LzLua|table.insert}}.
A jeżeli nie jest tworzony nowy rozdział z listy w tabeli: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, to na pozycję: {{Code|numer_podtablicy_w_tablicy}} {{LinkPatrz|numer_podtablicy_w_tablicy}}, jest dodawany element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, również tak jest robione, gdy artykuły znajdują się w rozdziale dodatnim, tzn. równaniowej lub centrowanej, tzn. wtedy: {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}, przyjmuje wartość {{Code|true}}.
===== {{Śródtytuł|AnalizaLiniiObiekty}}{{Code|AnalizaLiniiObiekty}} =====
Za pomocą funkcji: {{LinkŚródtytuł|LiniaArtykulow}}, linia: {{Code|linia_rozwazana}} {{Patrz|linia_rozwazana}}, jest rozdzielana na wiele linii. To wiele linii w postaci tabeli, są iterowane od: {{Code|k {{=}} 1}}, do: {{Code|k {{=}} #tab_linia}}, gdzie: {{Code|#tab_linia}} {{Patrz|#tab_linia}}, jest to długość linii, tzn. liczba elementów numerowanych tablicy, tzn. od 1 do wzwyż aż do napotkania najbliższej przerwy lub końca. Wtedy dla pojedyńczej literacji mamy: {{Code|tab_linia[k]}} {{Patrz|tab_linia[k]}}.
Iterujemy po kodach dla linii: {{Code|tab_linia[k]}} {{LinkPatrz|tab_linia[k]}}, przy pomocy funkcji: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|p.IteratorSzablonowyZakodowanegoTekstu}}, iteratorem: {{Code|iterator2}} {{Patrz|iterator2}}.
Inicjujemy zmienną: {{Code|tab_nieobslugiwane {{=}} nil}}, następnie iterujemy: {{LinkPatrz|iterator2}}, uzyskując w każdej iteracji: {{Code|szablon}} {{LinkPatrz|szablon}}, {{Code|obiekt}} {{LinkPatrz|obiekt}}, i {{Code|kod}} {{LinkPatrz|kod}}.
Gdy mamy do czynienia: {{Code|SZABLON}}, lub: {{Code|LINKW}}, albo: {{Code|LINKZ}}, wtedy dla elementów tego pierwszego bierzemy tablicę: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}, dla elementu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}.
Jeżeli ten element: {{Code|tabela_spisu}}, istnieje, element pierwszy: {{Code|tabela_spisu[1]}}, jest równy wartości {{Code|true}}, wtedy mamy do czynienia z szablonem {{s|SpisPozycja}}. Jej element: {{Code|tabela_spisu["numer_link"]}}, istnieje i jest równy: {{Code|tyt}} {{Patrz|tyt}}. Iterujemy po kluczach i jego wartościach tego szablonu i sprawdzamy, który element jest równy właśnie tej wartości, a jeżeli jest taki, to dla elementów nie równych niemu, a właściwie w jego wartości iterujemy po kodach funkcją: {{LinkPatrz|p.IteratorSzablonowyZakodowanegoTekstu}}, dla tej wartości, w ten sposób zbieramy tablicę wielowymiarową najpierw po: {{Code|obiekt}} {{LinkPatrz|obiekt}}, później po: {{Code|kod}}, {{LinkPatrz|kod}}, którą nazwiemy: {{Code|tab_nieobslugiwane}} {{Patrz|tab_nieobslugiwane}}, którego każda jej wartość jest równa {{Code|true}}. Ta tablica mówi dla jakich elementów ma nie zbierać w tablicy elementów w głównej tablicy rozdziałów i jego artykułach.
Dla elementu {{Code|tyt}} {{LinkPatrz|tyt}} tablicy parametrów przedrostek listy {{Code|przedrostek_listy}} ustawiamy na pusty, i liczmy numerację {{Code|tekstowy_przedrostek}} i zmienną: {{Code|szablon}} {{LinkPatrz|szablon}}, i ustawiamy zmienną {{Code|przerwij}} {{Patrz|przerwij}} na {{Code|true}}, aby dla tego szablonu nie zbierać elementów w tablicy rozdziałów i jego artykułów.
W przypadku przeciwnym dla: {{Code|tabela_spisu}}, gdy ma wartość {{Code|false}}, wtedy mamy do czynienia z funkcją: {{s|SpisZw}}. Dla niej liczymy: {{Code|przedrostek_listy}}, którą ustawiamy na pustą wartość. A: {{Code|tekstowy_przedrostek}}, liczmy uzyskując parametr o kluczu: {{Code|tabela_spisu["numer"]}}, którym jest parametr o numerze: {{Code|1}}, i {{Code|szablon}} {{LinkPatrz|szablon}}, który liczmy z parametrów szablonu o kluczu {{Code|tabela_spisu["link"]}}, którym jest numer {{Code|2}}. Ustawiamy tutaj zmienną: {{Code|przerwij}} {{LinkPatrz|przerwij}}, na wartosć {{Code|true}}.
====== {{Śródtytuł|CzyObslugiwane}}{{Code|CzyObslugiwane}} ======
Funkcja sprawdzająca, które elementy są obsługiwane, jeśli istnieje tablica: {{Code|tab_nieobslugiwane}} {{LinkPatrz|tab_nieobslugiwane}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local CzyObslugiwane=function()...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = Brak parametrów. | komórka1 = tak
}}
====== Dalszy opis funkcji ======
; Uwzględnianie tablicy, reprezentujące artykuł w rozdziale, wstawiany do tablicy danego rozdziału{{dk}}
Sprawdzany jest warunek:
<syntaxhighlight lang="lua">
if((--[[wliczaj_artykuly_tego_rozdzialu]] true)and(not przerwij)and((not tab_nieobslugiwane)or(CzyObslugiwane())))then
</syntaxhighlight>
Jeśli to nie jest spełnione, to sprawdzamy {{ZobaczTeż|link_szablon}}, czy jest zebrana licencja z autorem według zmiennej: {{Code|licencja_z_autorem}} {{Patrz|licencja_z_autorem}}, i sprawdzamy, czy: {{Code|szablon}} {{LinkPatrz|szablon}}, jest wnetrzem szablonu, jeżeli tak, to ono przyjmuje wartość odpowiadająca prawdziwej, przeciwnie ma fałszywą.
Jeżeli jest on spełniony, wtedy wywołujemy funkcję: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}, później dla:
<syntaxhighlight lang="lua">
if((not czy_obslugiwane)and(not numer_rodzaju_artykulu_poprz))then
</syntaxhighlight>
Sprawdzamy, czy jest zrobione {{LinkZobaczTeż|link_szablon}}.
; Szablony licencji, i jego parametry, uwzględnianie jego tylko raz ca całą książkę, mieszcząca się w artykule głównej książki{{dk}}
Następnie dla warunku, który musi być spełniony:
<syntaxhighlight lang="lua">
if((not numer_rodzaju_artykulu_poprz)and(not przerwij)and(link_szablon)and((not tab_pozycja_elementow_w_spisie_rzeczy)or(not tab_pozycja_elementow_w_spisie_rzeczy[1]))and(czy_artykul_korzystany)and(licencja_z_autorem))then
</syntaxhighlight>
Sprawdzamy szablony licencji, takich jak: {{s|Licencja}}, według tablicy: {{Code|{{sr|#p.szablony_licencji|p=StronicowyParser/obiekty}}}}.
Dla parametrów szablonu, liczymy jego parametry o kluczach, tzn.: {{Code|Autor}} {{Patrz|Autor}}, {{Code|Ukończone szkoły}} {{Patrz|Ukończone szkoły}}, {{Code|Email}} {{Patrz|Email}}, {{Code|Dotyczy}} {{Patrz|DotyczyDotyczy}}, {{Code|Licencjonowanie}} {{Patrz|Licencjonowanie}}, {{Code|Umowa prawna}} {{Patrz|Umowa prawna}} i {{Code|Konsekwencje}} {{Patrz|Konsekwencje}}, którego wartości przydzielamy do odpowiednich zmiennych. Każdą z tych zmiennych kompletujemy funkcją: {{Code|{{sr|#p.DekodowanieTekstuDekodowanieTekstu|p=StronicowyParser/Potrzebne}}}}, poprzez zwracaną przez nią funkcję, w której jest wykorzystywana: {{LzLua|frame:preprocess}}, do rozwijania. A dla elementu istniejącego: {{Code|Autor}}, piszemy zmienną: {{Code|licencja_z_autorem}} {{LinkPatrz|licencja_z_autorem}}, któremu przydzielamy wartość {{Code|false}}, co spowoduje, że nie będziemy analizowali jeszcze raz innego szablonu licencji.
Te zmienne tego szablonu zbieramy natomiast w tablicy: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}, dane dotyczące licencji, więc:
<syntaxhighlight lang="lua">
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
</syntaxhighlight>
Co później przerywamy pętle po: {{Code|iterator2}} {{LinkPatrz|iterator2}}, instrukcją: {{Code|break}}.
==== Dalszy opis funkcji {{nobold|{{LinkPatrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} ====
Ściągamy tekst, tabelę bazy i tabelę parametrów strony o nazwie: {{Code|nazwa_modulu}}, przy pomocy funkcji: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, według:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=nil;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Uruchamiamy funkcję: {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{LinkPatrz|__FUNKCJA_ZBIERANIA_DANYCH}}, jeżeli istnieje.
Dalej wywołujemy funkcję: {{Code|{{sr|#p.IterTekst|p=StronicowyParser/Rozdziały}}}}, w celu znalezienia tekstu: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, i iteratora: {{Code|iterator}} {{Patrz|iterator}}, po napisach wprowadzenia tekstu rozdziałów i ich zawartości rozdziałów i na podstawie:
<syntaxhighlight lang="lua">
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,
__FUNKCJA, ---- funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość;
__FUNKCJA2, ---- funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału);
__FUNKCJA_ANALIZA_SPISU ---- funkcja do analizy i modyfikacji tekstu (może zwracać wartość: nil) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: IterTekst, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: SpisTreści, co jest uwidocznione w module: Moduł:StronicowyParser/SpisTreści;
);
</syntaxhighlight>
Opis parametrów zwracanych:
{{OpisParametrów
| 1 = {{Code|iterator}} {{Patrz|iterator-IterTekst}} | _1 = Iterator po rozdziałach i jego zawartościach.
| 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu-IterTekst}} | _2 = Tekst przetworzony rozdziału.
}}
Odczytujemy tabelę: {{LinkPatrz|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}} i dalej: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, o definicji:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Robimy kopię tych tabel i przyłączamy do metatabeli: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, przy pomocy funkcji: {{LzLua|setmetatable}}, aby nie odrózniać tych rozdziałów ze względu na wielkość liter i polskie znaki.
Inicjiujemy zmienną: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, wartością: {{Code|1}}, aby zbierać po kolei artykuły ze poszczególnego pojedynczego spisu treści.
Ustawiamy maksymalny rozmiar rozdziału zerowego na {{Code|50}}, w zmiennej: {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{Patrz|maksymalny_rozmiar_rozdzialu_zerowego}}, według:
<syntaxhighlight lang="lua">
local maksymalny_rozmiar_rozdzialu_zerowego=50;
</syntaxhighlight>
===== {{Śródtytuł|AnalizaRozdzialu}}{{Code|AnalizaRozdzialu}} =====
Jest to funkcja do zbierania danych z pojedynczego rozdziału o pewnej linii, inicjowana z jego parametrami, także tekstem rozdziału.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaRozdzialu(rozdzial,linia_rozdzialu,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|rozdzial}} {{Patrz|rozdzial}} | _1 = Jest to tekst rozdziału.
| 2 = {{Code|linia_rozdzialu}} {{Patrz|linia_rozdzialu}} | _2 = Jest to linia z rozdziałem.
| 3 = {{Code|text}} {{Patrz|text}} | _3 = Jest to tekst rozdziału o pewnym napisie wprowadzenia tekstu.
| 4 = {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}} | _4 = Jest to poziom danego rozdziału.
| 5 = {{Code|poczatek_rozdzialu}} {{Patrz|poczatek_rozdzialu}} | _5 = Początek pozycji listy rozdziałów '''mechanizmu {{NS|k=mw|l=tak|pk=d}}'''.
| 6 = {{Code|numeracja}} {{Patrz|numeracja}} | _6 = Numeracja rozdziału.
| 7 = {{Code|czy_rozdzial_centrowany}} {{Patrz|czy_rozdzial_centrowany}} | _7 = Czy dany rozdział jest centrowany.
}}
====== Tabela artykułów rozdziałów i w nich artykułów oraz jego poszczególnych ======
Tworzymy tabelę: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, jeżeli nie istnieje, z pustą tablicą, a później dla elementu: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, jeżeli też go nie ma, to też pustą tablicą. Dalej liczymy napis wprowadzenia tekstu rozdziału dodatniego funkcją: {{LinkŚródtytuł|p.AnalizaNapisuWprowadzeniaTekstu}} i uwzględniamy je w tabeli rozdziałów dla danego rozdziału pod wartością: {{Code|tabela_rozdzial_artykulow[1]}}, w sposób:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany,},rozdzial,};
</syntaxhighlight>
Dalej wprowadzamy zmienną: {{Code|czy_spis_rzeczy_napis_wprowadzenia_tekstu}} {{Patrz|czy_spis_rzeczy_napis_wprowadzenia_tekstu}}, mówiącą, że rozpatrujemy rozdziały i artykuły w ramach spisu treści o nagłówkach typu: {{Code|Spis treści}}, czy: {{Code|SPIS RZECZY}}. Jeżeli wyszliśmy poza to, to ta zmienna, wtedy przyjmuje wartość fałszywą, a definicja inicjacji tej zmiennej jest:
<syntaxhighlight lang="lua">
local czy_spis_rzeczy_napis_wprowadzenia_tekstu=(poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[spreparowany_uzyskany_tekst_rozdzialu]);
</syntaxhighlight>
Gdzie:
{{OpisParametrów
| 1 = {{Code|poziom_rozdzialu}} | _1 = Jak w: {{LinkPatrz|poziom_rozdzialu}}.
| 2 = {{Code|czy_jest_spis_tresci}} {{Patrz|czy_jest_spis_tresci}} | _2 = Czy jesteśmy w spisie treści.
| 3 = {{Code|dalej_nie_rozwazaj_spis_tresci}} {{Patrz|dalej_nie_rozwazaj_spis_tresci}} | _3 = Zmienna mówiąca, że teraz jesteśmy poza spisem treści.
}}
====== Kiedy uwzględniamy artykuły rozdziału ======
Jeżeli jesteśmy w spisie, to zawsze są uwzględniane artykuły rozdziału, bo jest ustawiona zmienna: {{Code|wliczaj_artykuly_tego_rozdzialu}} {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, na {{Code|true}}, a poza na {{Code|nil}}.
Funkcja jest przyszykowana jest dla jednego spisu treści, o ściśle określonym specjalnym napisie wprowadzenia tekstu, w danym spisie na stronie.
====== Iterator linii artykułu spis treści ======
Uruchamiamy iterator, używając funkcji lokalnej: {{LinkŚródtytuł|iteratorTekstuNaglowka}}, według wywołania:
<syntaxhighlight lang="lua">
local iterator=iteratorTekstuNaglowka();
</syntaxhighlight>
Ustawiamy zmienną: {{Code|wliczaj_artykuly_tego_rozdzialu}} {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, aby wliczał lub nie, pewne artykuły rozdziału według:
<syntaxhighlight lang="lua">
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
</syntaxhighlight>
Iterujemy otrzymanym ostatnio iteratorem, uzyskując kolejno zmienne: {{Code|przedrostek_listy}} {{LinkPatrz|przedrostek_listy}}, {{Code|tekstowy_przedrostek}} {{LinkPatrz|tekstowy_przedrostek}}, {{Code|linia}} {{LinkPatrz|linia}}, i {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}.
; Kiedy rozdziałów zerowych nie liczymy jako je{{dk}}
Dla rozdziałów, które nie sa poziomami z listą, sprawdzamy, czy to jest rozdział zerowy przy pomocy funkcji: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, i sprawdzamy, czy on przekracza rozmiar: {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}, jeżeli jest tym rozdziałem i nie przekracza pewnego rozmiaru, to to jest rozdział traktowany jako zerowy niepomijany rozdział zerowy, wtedy ustawiamy zmienną: {{Code|nie_pomijaj_tego_rozdzialu}} {{Patrz|nie_pomijaj_tego_rozdzialu}}, na {{Code|true}}.
; A jeśli to są rozdziały z listy zaczynające się od dwukropka w linii{{dk}}
Gdy taki rozdział nie pretenduje do zerowych, to sprawdzamy funkcją: {{Code|{{sr|#p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu|p=StronicowyParser/Rozdziały}}}}, czy ten rozdział pominąć, a jeżeli ona przyjmuje wartość odpowiadającej fałszywej, czyli {{Code|false}}, wtedy ustawiamy zmienną: {{Code|nie_pomijaj_tego_rozdzialu}} {{LinkPatrz|nie_pomijaj_tego_rozdzialu}}, na taką samą wartość jak poprzednio.
; Inne rozdziały{{dk}}
Dla rozdziałów innych ta wartość przyjmuje postać {{Code|false}}.
; Rozdziały jednak nie pomijane{{dk}}
Ustalamy wartość {{Code|ile}} {{Patrz|ile}}, na wartość zero.
Dla rozdziałów, które nie są pomijane, wtedy zmienna: {{Code|nie_pomijaj_tego_rozdzialu}} {{LinkPatrz|nie_pomijaj_tego_rozdzialu}}, przyjmuje wartość {{Code|true}}, w takim przypadku wchodzimy do funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami|p=Szablonowe}}}}, wtedy dla linków szablonowych sprawdzamy, czy to są linki określone tablicami: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy}}, {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}} lub ewentualnie funkcją: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}.
Wtedy jeżeli jest to link, to ikrementujemy: {{Code|ile}} {{LinkPatrz|ile}}.
Innym sposobem sprawdzania, czy to jest szablon linkowy jest tablica: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_kompletowania_stron_woluminu}}, lub {{Code|{{sr|#p.szablony_licencji|p=StroncowyParser/obiekty}}}} {{LinkPatrz|p.szablony_licencji}}.
Wtedy jest zwracane to:
<syntaxhighlight lang="lua">
return czy_szablon,obiekt,kod;
</syntaxhighlight>
Jeżeli to jest szablon linków, wtedy jest zwracana wartość: {{Code|return true,obiekt,kod}}, w przeciwnym wypadku:
<syntaxhighlight lang="lua">
return false,obiekt,kod;
</syntaxhighlight>
Innym sposobem liczenia, czy to jest link, to wtedy może być to link normalny: {{Code|LINKW}}, który można sprawdzić funkcją: {{Code|{{sr|#p["CzyLinkWewnętrzny"]|p=Specjalne}}}}, wtedy jest zwracane {{Patrz|gołe linki}}:
<syntaxhighlight lang="lua">
return true,obiekt,kod;
</syntaxhighlight>
Link też może być zewnętrzny, wtedy to jest: {{Code|LINKZ}}, wtedy funkcja zwraca wartości {{LinkPatrz|gołe linki}}.
; Kiedy analizujemy artykuły rozdziału{{dk}}
Następnie dla linii: {{Code|linia_rozwazana}} {{LinkPatrz|linia_rozwazana}}, co na podstawie tego liczymy, czy daną linię nie uwzględnić, w obliczeniach według schematu:
<syntaxhighlight lang="lua">
local czy_linia_uwzgledniana=mw.ustring.match(linia_rozwazana,"^%s*%-%-+(.*)%-%-+%s*$");
local czy_linia=((not czy_linia_uwzgledniana)and(mw.ustring.match(linia_rozwazana,"^%s*[%-%+%=%~]+.*$")
or ((#przedrostek_listy==0)and((mw.ustring.match(linia_rozwazana,"!"))and(mw.ustring.match(linia_rozwazana,"[^!]%s*$"))))
or mw.ustring.match(linia_rozwazana,"^%s*<")) or nil);
</syntaxhighlight>
Co następnie jest ustawiana: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}} na wartość {{Code|false}}.
; Warunek analizowania artykułów rozdziałów{{dk}}
W obliczeniach raz uwzględniamy funkcję: {{LinkŚródtytuł|AnalizaLiniiObiekty}}, w ostatniej omawianej pętli, schematycznie:
<syntaxhighlight lang="lua">
if(not czy_linia)then AnalizaLiniiObiekty(linia_rozwazana);end;
</syntaxhighlight>
===== Dalsza część funkcji {{nobold|{{LinkPatrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} =====
Bierzemy zakodowany tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu-IterTekst}}, i po nim iterator: {{Code|iterator}} {{LinkPatrz|iterator-IterTekst}}, wtedy iterujemy po parametrach:
<syntaxhighlight lang="lua">
local parsuj_rozdzialami=nil; ---- ta zmienna służy na wypadek, gdy by nie była żadnych rozwazanych rozdziałów;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
---- za każdym razem jest uruchamiana funkcja: AnalizaRozdzialu, przy rozważanym rozdziale;
AnalizaRozdzialu(rozdzial_tab[1],rozdzial_tab[2],text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany);
---- oznacz zmienną: parsuj_rozdzialami, wartością; true, a póżniej jąnie inicjuj;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
</syntaxhighlight>
Parametry zwracane przez iterator: {{Code|iterator}} {{LinkPatrz|iterator-IterTekst}}:
{{OpisParametrów
| 1 = {{Code|rozdzial_tab}} {{Code|{{=}}}} {{Code|<nowiki>{ [1] = rozdzial, [2] = linia_rozdzialu, }</nowiki>}} | _1 = tabela składająca się z dwóch elementów:
| 2 = Pod elementy tabeli: | nagłówek2 = tak
| 3 = {{Code|rozdzial}} | _3 = Jak w: {{LinkPatrz|rozdzial}}.
| 4 = {{Code|linia_rozdzialu}} | _4 = Jak w: {{LinkPatrz|linia_rozdzialu}}.
| 5 = Inne parametry: | nagłówek5 = tak
| 6 = {{Code|text}} | _6 = Jak w: {{LinkPatrz|text}}.
| 7 = {{Code|poziom_rozdzialu}} | _7 =Jak w: {{LinkPatrz|poziom_rozdzialu}}.
| 8 = {{Code|poczatek_rozdzialu}} | _8 = Jak w: {{LinkPatrz|poczatek_rozdzialu}}.
| 9 = {{Code|numeracja}} | _9 = Jak w: {{LinkPatrz|numeracja}}.
| 10 = {{Code|czy_rozdzial_centrowany}} | _10 = Jak w: {{LinkPatrz|czy_rozdzial_centrowany}}.
}}
Gdy nie napotkano żadnego rozważanego rozdziału, wtedy: {{Code|parsuj_rozdzialami}}, przyjmuje wartość {{Code|nil}}, w takim razie uruchamiana jest funkcja:
<syntaxhighlight lang="lua">
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",nil,tekst_rozwiniety_calego_artykulu,nil,nil,nil,nil);
end;
</syntaxhighlight>
Funkcja zwraca parametry inaczej, gdy artykuł, do którego należy książka jest korzystana, a inaczej, jeśli nie. W takim razie możemy zwracać na dwa sposoby:
<syntaxhighlight lang="lua">
if(czy_artykul_korzystany)then
return tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci;
else
return tabela_artykulow,nil,przekierowanie_spisu_tresci;
end;
</syntaxhighlight>
Przy artykułach korzystanych, co jest określone zmienną: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, tabelę: {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, przy jego spisach treści w książkach, do której należy ten artykuł, zwracana jest jako wartość przeważnie jako nierówna {{Code|nil}}, a dla artykułów z innych książkach, ta wartość już jest taka, tzn. przyjmuje wartość {{Code|nil}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
oj8m73lrf3qkr2d6psjgowt41bojv5g
560309
560308
2026-10-29T15:24:31Z
Persino
2851
/* Definicja tablicy: {{Code|tab_stare}}, inicjowanie jej elementów w różnych przypadkach */
560309
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|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 lokalne ==
=== {{Śródtytuł|Ile}}{{Code|Ile}} ===
Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow2}} {{Patrz|tabela_rozdzial_artykulow2}}, licząc od drugiej tabeli, po pierwszej tabeli mieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami.
Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w takich rozdziałach {{ZobaczTeż|przetłumaczone rozdziały}} przetłumaczonych na małą literę, ale przedtem na niego była działana funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, usuwając z nich odstępy na końcach, w tym dolne myślniki, a wewnątrz zamieniając kolejne dolne myślniki i spacje na jedną spację.
Metafunkcja, w metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}, aby porównać to z tablicą {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}}, by zaliczyć je do tego typu:
<syntaxhighlight lang="lua">
p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={
["licencja"]=true,
["inne"]=true,
["bibliografia"]=true,
["zobacz też"]=true,
["linki zewnętrzne"]=true,
};
</syntaxhighlight>
Musimy wykorzystać tak przetłumaczone rozdziały {{LinkZobaczTeż|przetłumaczone rozdziały}}, przy pomocy tej metatabelki, czy one zgadzają się z tą tablicą.
Te rozdziały należą do kategorii rozdziałów, w których artykuły są pomijane przez: '''{{ld|StronicowyParser|Stronicowy parser}}''', ale jeżeli one należą do rozdziału spisu treści lub rzeczy, to tam jednak nie są takie, inaczej jest poza.
A od: {{Code|7}} do {{Code|13}}, znajdują się podtabele z artykułami, które już należą już tam, czyli wtedy te drugie {{Code|6}} tabel.
A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a jego opis w: {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|numer_rodzaju_artykulu}} | _1 = Numer podtabeli elementtu, do którego wsadzamy element.
| 2 = {{Code|tabela_rozdzial_artykulow2}} | _2 = Tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}}.
}}
=== {{Śródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}{{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} ===
==== Opis pobieżny funkcji ====
Funkcja do wstawiania elementów z ogólnej tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, za pomocą funkcji wstawianej jako parametr: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{Patrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, do odpowiedniej pozycji artykularnej od: {{Code|2}} do {{Code|13}}, a pozycja {{Code|1}}, to pozycja rozdziałowa, ona jest określana przez zmienną: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{Patrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, a pozycja, którą wsadzamy to: {{Code|tab_stare}} {{Patrz|tab_stare}}.
Funkcja zwraca pozycje:
<syntaxhighlight lang="lua">
return numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych;
</syntaxhighlight>
Opis tych parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|numer_rodzaju_artykulu_poprz}} {{Patrz|numer_rodzaju_artykulu_poprz}} | _1 = Jest to wartość zwrócona przez funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}}, w odróżnieniu od: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, jest mniejszy o jeden, czyli wtedy to była a poziomie przypisywania wartość {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}},
| 2 = {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{Patrz|tab_pozycja_elementow_w_spisie_rzeczy}} | _2 = Pierwsza artykularna zmienna zwrócona przez funkcję {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}.
| 3 = {{Code|tablica_artykulow_zebranych}} {{Patrz|tablica_artykulow_zebranych}} | _3 = Tablica do sprawdzania, czy artykuł z nagłówkiem, ma powtórzenie tego bez nagłówka, czyli dla tego bez tego jest inna numeracja niż z nagłówkiem, a gdy niema tego bez, to wtedy dzięki tej funkcji numeracja tak się zachowuje, jak tam by był ten element, co prawda jest tam dodawany, ale jako z informacją taką, że bz numeru ustalanym przez funkcję: {{LinkŚródtytuł|Ile}}, A przy okazji, aby tego elementu nie dodawać ponownie, to w nim jest ustalana druga zmienna na {{Code|1}}, a wcześniej była na {{Code|0}}, i dlatego ona była wtedy dodawana, a później już tak nie jest.
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY,tabela_rozdzial_artykulow2,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]])...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|self}} {{Patrz|self}} | _1 = Zmienna obiektowa funkcji, z pominięciem, której funkcję można napisać zamiast {{Code|p.}} {{Patrz|p.}} jako {{Code|p:}} {{Patrz|p:}}.
| 2 = {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} | _2 = Opis jest jak w: {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
</syntaxhighlight>
Funkcja jest wywoływana w:
<syntaxhighlight lang="lua">
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana),tabela_rozdzial_artykulow,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow);
</syntaxhighlight>
Gdzie funkcja: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, to jest: {{LinkŚródtytuł|WsadzanieParametryDoTablicy}}.
| 3 = {{Code|tabela_rozdzial_artykulow2}} | _3 = Ta tabela działa według opisu jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}}.
| 4 = {{Code|tablica_artykulow_zebranych}} | _4 = Diała jak w: {{LinkPatrz|tablica_artykulow_zebranych}}.
| 5 = {{Code|wliczaj_artykuly_tego_rozdzialu}} {{Patrz|wliczaj_artykuly_tego_rozdzialu}} | _5 = Jak przybiera odpowiadającą wartość fałszywą, to do: {{LinkPatrz|numer_rodzaju_artykulu}}, dodawane jest {{Code|6}}.
| 6 = {{Code|szablon}} {{Patrz|szablon}} | _6 = Jest to tekst zakodowany całego linku wewnętrznego, czy zewnętrznego, czy linku inteligentnego w postaci szablonu.
| 7 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - | _7 = Kolejno to jest: '''nazwa przestrzeni nazw''', '''nazwa przestrzeni książki''' i '''nazwa książki'''.
| 8 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _8 = Jest to nazwa artykułu danego spisu treści.
| 9 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _9 = Uchwyt do bazy kodowania tekstu strony spisu treści.
| 10 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _10 = Nazwa strony szablonowa, jak są wywoływane w postaci szablonowej, gdzie są rozwijane adresy względne stron, poczytaj: {{lr2|Moduły/StronicowyParser/Rozdziały}} {{Patrz|Moduły/StronicowyParser/Rozdziały}}.
| 11 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _11 = Uchwyt do tablicy bazy kodowania zapisany w samej bazie dla danego artykułu, używany zamiast:{{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 12 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _12 = Tablica bazy zapisana w postaci osobnej tablicy, a nie jej w wewnętrznej bazie, nie jak to było w postaci zmiennej {{LinkPatrz|nazwa_modulu}}, używana zamiast: {{LinkPatrz|nazwa_modulu}}.
| 13 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _13 = Tablica rozłożeń zmiennej {{Code|szablon}}, dla zmiennych szablonowych, i dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}.
| 14 = {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} | _14 = Obiekt i kod, czyli: zmienne charakteryzujące zmienną wnętrza: {{Code|szablon}} {{LinkPatrz|szablon}}.
| 15 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _15 = Tablica przekierować, aby nie rozpatrywać tego samego przekierowania wiele razy.
| 16 = {{Code|przedrostek_listy}} {{Patrz|przedrostek_listy}} | _16 = Tekstowy przedrostek listy z przedziału znaków: {{Code|<nowiki>[;%*:#]+</nowiki>}} {{Patrz|wzor_do_linii_z_lista}}, rozpoczynających pojedyncza linię.
| 17 = {{Code|tekstowy_przedrostek}} {{Patrz|tekstowy_przedrostek}} | _17 = Numeracja rozdziału, z jakim rozpoczyna się rozdział.
| 18 = {{Code|w_rozdziale}} {{Patrz|w_rozdziale}}} | _18 = Gdy link znajduje się w rozdziale dodatnim.
| 19 = {{Code|linia_artykokow}} {{Patrz|linia_artykokow}} | _19 = Cała linia z artykułem lub artykułami, tą linią równie dobrze może być rozdział, tu chodzi o rozdział dodatni.
}}
==== Opis pobieżny funkcji {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} ====
Przedstawiamy tutaj funkcję: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, która jest opisana w punkcie: {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
Definicja funkcji w nagłówku:
<syntaxhighlight lang="lua">
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tabela_rozdzial_artykulow2}} | _1 = Jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}},
| 2 = {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} | _2 = Jak w: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}},
| 3 = {{Code|tab_stare}} | _3 = Jak w: {{LinkPatrz|tab_stare}}.
}}
Ta funkcja została opisana już wcześniej.
==== Szczegółowy opis funkcji głównej ====
Uruchamiamy funkcję {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, która jest zdefiniowana w module: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}.
Wywołujemy tę funkcję:
<syntaxhighlight lang="lua">
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nil,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych);
</syntaxhighlight>
Pierwszy zwracanym elementem: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, jest to zmienna tablicowa, która opisuje parametry artykularno-linkowe, drugi: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, do której kategorii należy dany artykuł w linku, a trzeci parametr, to: {{Code|id}} {{Patrz|id}}, to zbierane są parametry linkowe z szablonu {{s|SpisTreści}}, czwarty to: {{Code|parametry_szablonu}} {{Patrz|parametry_szablonu}}, w przypadku szablonów inteligentnych linków, to są parametry wywołań tych szablonów, ostatni parametr to: {{Code|kom}} {{Patrz|kom}}, przedstawia on, jeśli {{Code|false}}, to artykuł zakwalifikowany został poprawnie do rozważań, a {{Code|true}} już nie.
To {{LinkPatrz|parametry szablonu}}, to jest tablica z trzech elementów, tzn.:
<syntaxhighlight lang="lua">
local parametry szablonu={tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,};
</syntaxhighlight>
Elementy tablicy:
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tablica parametrów uzyskanych z argumentów, i ich wartości, nazwanych i nienazwanych.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = To jest nazwa uzyskanego szablonu linków inteligentnych lub nie.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela modyfikatorów rozkładanego szablonu.
}}
Jeśli parametr: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, istnieje, to tworzona jest z niego taka sama wersja lub przy nieistnieniu parametru {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, do niego jest dodawana jest liczba {{Code|6}}. W ten sposób możemy zbierać artykuły książki i inne, które należą do pewnych rozdziałów i które nie należą.
===== {{Śródtytuł|ParametrPierwszy}}{{Code|ParametrPierwszy}} =====
Funkcja zbierające dane z {{Code|tab_artykul}} {{Patrz|tab_artykul}}, którego to jest czteroelementowa tablica, dotycząca danego artykułu. Drugim parametrem: {{Code|czy_niedozwolone}} {{Patrz|czy_niedozwolone}}, jest zmienna logiczna mówiąca, czy wskazać w nazwie artykułu, czy są dozwolone znaki, jest to sprawdzenie według wyrażenia regularnego: {{Code|<nowiki>[|<>{}%[%]]</nowiki>}} {{Patrz|wzor_znaki_niedozwolone}} na podstawie funkcji {{LzLua|mw.ustring.match}}, czyli: {{Code|znaki_niedozwolone}} {{Patrz|znaki_niedozwolone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
ParametrPierwszy(tab_artykul,czy_niedozwolone)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tab_artykul}} | _1 = Jak w: {{LinkPatrz|tab_artykul}}.
| 2 = {{Code|czy_niedozwolone}} | _2 = Jak w: {{LinkPatrz|czy_niedozwolone}}.
}}
Gdzie: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul}}, który jest pierwszym parametrem przyjmowanym przez funkcję, jest zdefiniowany jako czteroelementowa tablica, którą przypisujemy do czterem osobnych parametrów:
<syntaxhighlight lang="lua">
local artykul=tab_artykul[1];
local parametry=tab_artykul[2];
local naglowek=tab_artykul[3];
local tablica_przekierowania=tab_artykul[4];
</syntaxhighlight>
Jeżeli, któreś z parametrów z: {{LinkPatrz|tab_artykul}}, tzn. element jego {{Code|2}}-gi i {{Code|3}}-ci, istnieje, to układana jest trzyelementowa tablica z elementów od {{Code|1}} do {{Code|3}}, z dodatkowym elementem: {{Code|<nowiki>["LINK"] = true</nowiki>}}, a element czwarty to jest: {{Code|tablica_przekierowania}} {{Patrz|tablica_przekierowania}}, a jeżeli te dwa elementy, nie licząc czwartego, wcale nie istnieją, wtedy jest tworzony łańcuch znakowy z tego pierwszego elementu. Tak tworzymy, nową wersję tablicy: {{Code|tab_artykul}} {{Patrz|tab_artykul-nowa wersja}}, lub łańcuch znakowy, w postaci:
<syntaxhighlight lang="lua">
tab_artykul=((artykul)and(parametry or naglowek))and{[1]=artykul,[2]=parametry,[3]=naglowek,["LINK"]=true,} or artykul;
</syntaxhighlight>
Funkcja zwraca trzy parametry, tzn. parametry: {{LinkPatrz|tab_artykul-nowa wersja}}, {{LinkPatrz|znaki_niedozwolone}} i tablicę przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, co skrótowo piszemy: {{Patrz|zwracane-ParametrPierwszy}}:
<syntaxhighlight lang="lua">
return tab_artykul,znaki_niedozwolone,tablica_przekierowania;
</syntaxhighlight>
===== Rozwijanie nazwy linku artykułu =====
Do rozwijania nazwy linku służy funkcja: {{Code|{{sr|#p.DekodowanieTekstuNazwLinku|p=StronicowyParser/Pomocne}}}} {{Patrz|p.DekodowanieTekstuNazwLinku}}, pod względem szablonowym i nie tylko.
Funkcja rozwija tą nazwę tym: {{LzLua|frame:preprocess}}, jedynie nie rozwija szablonów stronicowego parsera, podane podkategoriach w kategorii: {{Code|{{lk2|Szablony stronicowe}}}}, za pomocą odpowiednich metod, bo to by wywołało nieskończoną pętle, i dlatego takie szablony są zamieniane tylko na wywołania symboliczne.
==== Dalszy opis funkcji nadrzędnej przy istnieniu parametrów linkowych normalnych, czy szablonowych (linków inteligentnych) ====
===== Gdy: {{Code|numer_rodzaju_artykulu_poprz}} {{Code|{{=}}}} {{Code|1}} =====
Tworzony jest numerek: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{Patrz|numer_rodzaju_artykulu_w_podreczniku}}, który w stosunku do: {{LinkPatrz|numer_rodzaju_artykulu}}, jest większy o jeden, a schemat tej operacji:
<syntaxhighlight lang="lua">
local numer_rodzaju_artykulu_w_podreczniku=numer_rodzaju_artykulu+1;
</syntaxhighlight>
====== Tworzenie tablicy: {{nobold|{{Code|tablica_artykulow_zebranych}}}} ======
Opiszemy tutaj tablicę: {{Code|tablica_artykulow_zebranych}}, opisaną wstępnie w punkcie: {{LinkPatrz|tablica_artykulow_zebranych}}.
; Tablica{{dk}} {{nobold|{{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}}}, nie jest tablicą{{dk}}
Gdy element pierwszy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, nie jest tablicą, wtedy jedynie liczymy, czy ona ma znaki niedozwolone: {{Code|wzor_znaki_niedozwolone}} {{LinkPatrz|wzor_znaki_niedozwolone}}, a póżniej wiedząc ten element, który jest aktualną nazwą artykułu kiążki, tworzymy tabelę: {{ZobaczTeż|tablica_artykulow_zebranych-inicjacja}}:
<syntaxhighlight lang="lua">
tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
</syntaxhighlight>
; Gdy element{{dk}} {{nobold|{{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}}}, jest łańcuchem znaków{{dk}}
Wpierw liczone są parametry z wywołania, z opcją, czy ma liczyć, czy nazwa artykułu ma znaki niedozwolone, z funkcji: {{LinkŚródtytuł|ParametrPierwszy}}:
<syntaxhighlight lang="lua">
tab_pozycja_elementow_w_spisie_rzeczy[1],znaki_niedozwolone,tablica_przekierowania=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],true);
</syntaxhighlight>
; Inna książka - atrybut, tzn. czy artykuł wychodzi poza daną książkę, lub jego przekierowanie w niej kieruje na stronę poza nią{{dk}}
Dalej sprawdzane jest, czy książka przyjmuje atrybut, tzn.: '''czy inna książka''', wtedy liczymy to z kodu z tablicy przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, jeżeli jej wartość istnieje, tzn.: {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}}:
<syntaxhighlight lang="lua">
local czy_inna_ksiazka=tablica_przekierowania and tablica_przekierowania[1] and tablica_przekierowania[1][5] or nil;
</syntaxhighlight>
; Tablica przekierowania artykułu względem bieżącej książki{{dk}}
Element: {{Code|<nowiki>[1][5]</nowiki>}}, to jest element tablicy: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, który przedstawia, czy to jest artykuł bieżącej książki, którego przekierowanie kieruje, wtedy ten parametr ma wartość {{Code|true}}, a gdy adres przekierowania wskazuje na inną książkę, wtedy {{Code|false}}. Jeśli ten parametr ma wartość fałszywą, wtedy jest sprawdzane, czy jest tablicą w: {{Code|czy_tablica}} {{Patrz|czy_tablica}}, według:
<syntaxhighlight lang="lua">
czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
</syntaxhighlight>
Lub w przeciwnym wypadku liczymy parametry artykularne z tablicy przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, a jeżeli parametry lub nagłówek przekierowania, w tej tablicy, istnieje, wtedy parametr: {{Code|czy_tablica}} {{LinkPatrz|czy_tablica}}, przyjmuje wartość {{Code|true}}, w przeciwnym wypadku wartość fałszywą.
Gdy ten element nie jest tablicą, to tworzona jest nazwa pełna artykułu: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}} i umieszczana w tablicy: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, w sposób, co dalej jest tworzona w dalszych operacjach tablica: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, z podobną tablicą początkową jak w poprzednim przypadku jego tworzenia, czyli jak w: {{LinkZobaczTeż|tablica_artykulow_zebranych-inicjacja}}.
; Tablica zebranych artykułów i porównywanie artykułu z nagłówkiem, czy istnieje wcześniejszy artykuł bez niego{{dk}}
Gdy element jest jednak tablicą, też jest liczona pełna nazwa artykułu (gdy nazwa artykułu przekierowania istnieje, wtedy ona jest liczona z: {{Code|tablica_przekierowania[2]}}, w przeciwnym wypadku, jeśli element: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}, jest tablicą, wtedy liczymy ją z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1][1]}}, w innym wypadku z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}), a z niej liczymy tablicę: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, jak w: {{LinkZobaczTeż|tablica_artykulow_zebranych-inicjacja}}, w przypadku pierwszego artykułu nienagłówkowego.
A w przypadku pierwszego artykułu, który może być tylko z nagłówkiem, bo tego bez, w spisie, artykuł poprzedni nie istnieje, a więc tego tam nie ma tam w takim przypadku.
Gdy funkcja napotkała artykuł o takim samym stronie, co poprzednio, to do wartości początkowej, bez definiowania jeszcze raz tej samej tablicy, jest ustawiane odpowiednio:
<syntaxhighlight lang="lua">
tablica_artykulow_zebranych[3]=true;
</syntaxhighlight>
Co informuje, że artykuł jest ten sam, tylko inny nagłówek niż poprzedni, a poprzedni pierwszy jest bez niego.
====== Rozwijanie nazwy linku ======
Kompletowany jest drugi element tablicy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, rozwijając szablony w nim względem funkcji: {{LinkPatrz|p.DekodowanieTekstuNazwLinku}}. Dalej z tej nazwy są usuwane znaki specjalne według funkcji: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, z modułu: {{Code|{{ld2|Specjalne}}}}. Następnie działamy funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, które końcowe spacje usuwa, a wewnętrz powtarzające zamienia kolejne na jedną spację.
====== Dodawanie do tablicy problemów, jeśli nastąpił problem ze znakami niedozwolonymi ======
A między czasie, gdy mamy niedozwolone znaki: {{Code|znaki_niedozwolone}} {{LinkPatrz|znaki_niedozwolone}}, za pomocą funkcji pytającej sprawdzamy, czy element inny zgłoszeniowy został dodany do tablicy problemów: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, aż w końcu dodajemy ten problem, jeśli go nie ma przy pomocy funkcji: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
====== {{Śródtytuł|inicjacja_i_kompletowanie_zmiennych}}Ustalanie nazwy jednostki, kompletowanie linii artykułów i inicjowanie pozycji, w tabeli zebranych elementów, w tabeli zebranych elementów ======
Ustalamy nazwę jednostki z funkcji: {{Code|{{sr|#p.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem|p=StronicowyParser/Potrzebne}}}}, i inicjujemy tą wartością, czyli: {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, wartość starą: {{Code|stara_nazwa_jednostki}} {{Patrz|stara_nazwa_jednostki}}, według:
<syntaxhighlight lang="lua">
---- Piszanie pełnej nazwy jednostki bez parametrów i nagłówka;
local nazwa_jednostki=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
---- Inicjowanie starej wartości tą policzoną;
local stara_nazwa_jednostki=nazwa_jednostki;
</syntaxhighlight>
Dalej {{Śródtekst|uchwyt=tabela_rozdzial_artykulow2|tekst=inicjujemy pozycję, jeżeli nie istnieje taka, na podstawie policzonej wartości: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, w tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}}}, według:
<syntaxhighlight lang="lua">
if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku])then tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku]={};end;
</syntaxhighlight>
Co {{Śródtekst|uchwyt=linia_artykokow|tekst=dalej linię artykułów {{Code|linia_artykokow}} {{LinkPatrz|linia_artykokow}}, kompletujemy, funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, z modułu: {{Code|{{ld2|Szablonowe}}}}, znając tablicę: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}}}, według:
<syntaxhighlight lang="lua">
linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
</syntaxhighlight>
====== Uwzględnianie niepodanego elementu nienagłówkowego w tablicy zebranych parametrów ======
Gdy tablica przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, istnieje, wtedy sprawdzamy, czy zmienna logiczna: {{Code|czy_tablica}} {{LinkPatrz|czy_tablica}}, jest prawdą i czy: {{Code|stara_nazwa_jednostki}} {{LinkPatrz|stara_nazwa_jednostki}}, czy jest nie pusta, w takim razie jej element: {{Code|<nowiki>[2]</nowiki>}}, przydzielany jest do zmiennej: {{Code|przekierowanie}} {{Patrz|przekierowanie}}, czyli parametrów nazwy artykułu przekierowania.
Inicjujemy nową zmienną: {{Code|przekierowanie}} {{LinkPatrz|przekierowanie}}, z artykułu, parametrów i nagłówka, ale wpierw sprawdzamy, czy dwa ostatnie istnieją, według:
<syntaxhighlight lang="lua">
przekierowanie=przekierowanie and ((tablica_przekierowania[3] or tablica_przekierowania[4]) and {przekierowanie, tablica_przekierowania[3], tablica_przekierowania[4],["LINK"]=true,} or przekierowanie) or nil;
</syntaxhighlight>
Tworzony jest nowy element: {{Code|nazwa jednostki}} {{Patrz|nazwajednostki-nowy}}, z: {{LinkPatrz|nazwa jednostki}}, parametrów i nagłówka, według rysu:
<syntaxhighlight lang="lua">
nazwa_jednostki={nazwa_jednostki, tab_pozycja_elementow_w_spisie_rzeczy[1][2], tab_pozycja_elementow_w_spisie_rzeczy[1][3],["LINK"]=true,};
</syntaxhighlight>
Jeżeli parametr drugi: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, a trzeci jej jest: {{Code|false}}, wtedy kreujemy tablicę: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
Wsadzamy element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do zbioru: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, przy pomocy funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
Następnie jej drugiemu elementowi: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, dawana jest wartość {{Code|1}}, aby nie dało się ponownie tworzyć i wsadzać element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycji: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, według funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, odpowiedzialny za artykuł nienagłówkowy, którego nie ma w spisach treści książki, ale są one w wersji nagłówkowej.
Jeżeli tablica przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, jednak nie istnieje, wtedy tak samo sprawdzamy, co poprzednio potem, ale po spełnieniu tych warunków robimy inną tablicą: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, i tę tablicę robimy podobnie, i inicjujemy te same elementy też podobnie.
====== Uwzględnianie pozycji podanej w tablicy zebranych elementów ======
Tworzymy zmienną: {{Code|ile_dodac_do_poziomu_artykulu}} {{Patrz|ile_dodac_do_poziomu_artykulu}}, z drugiego elementu tablicy: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, następnię tworzymy inną zmienną: {{Code|ile_dodac_do_poziomu_artykulu_lub_nil}} {{Patrz|ile_dodac_do_poziomu_artykulu_lub_nil}}, co uwidaczniamy wzorem:
<syntaxhighlight lang="lua">
local ile_dodac_do_poziomu_artykulu_lub_nil=((ile_dodac_do_poziomu_artykulu)and(ile_dodac_do_poziomu_artykulu>0))and ile_dodac_do_poziomu_artykulu or nil;
</syntaxhighlight>
Tą zmienną wykorzystamy do sformułowania: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
{{Śródtekst|tekst=Tworzymy zmienną: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, którą wsadzamy do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycji: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, przy pomocy funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.|uchwyt=__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}
===== Gdy: {{Code|numer_rodzaju_artykulu_poprz}} {{Code|>{{=}}}} {{Code|2}} =====
Będziemy tutaj operowali, gdy parametr drugi zwracany z funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, wskazuje na nie artykuł książki, zatem ten rozdział jest właśnie dla tego przypadku.
====== Odkodowanie i przygotowanie zmiennych artykułu linku, jej nazwy, także kodu języka i projektu ======
* Gdy pierwszy element tablicy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, jest tabelką, wtedy do przetworzenia jego wykorzystujemy funkcję: {{LinkŚródtytuł|ParametrPierwszy}}.
* Dla drugiego takiego elementu z tego, co jest nazwą linku, wtedy gdy nazwa linku normalnego, czy szablonowego, jest zakodowana, to ją odkodujemy, którego każdy jego element kod odkodujemy według funkcji: {{LinkPatrz|p.DekodowanieTekstuNazwLinku}}, następnie z niej usuwamy znaki specjalne według: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, następnie usuwamy końcowe spacje i wewnątrz kolejne spacje zastępujemy jedną spacją, co robimy według: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
* Dla trzeciego i czwartego takiego elementu, to jest kolejno kod języka i projektu, z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, te elementy odkodujemy, następnie z nich usuwamy końcowe spacje, a wewnątrz kolejne spacje zastępujemy jedną, według tej samej funkcji, co powyżej.
====== Przygotowanie zmiennych, inicjowanie tablicy: {{Code|tab_stare}}, i wsadzanie jej do tablicy ogólnej: {{Code|tabela_rozdzial_artykulow2}} ======
Dalej {{PobierzŚródtekst|tabela_rozdzial_artykulow2}}, także co {{PobierzŚródtekst|linia_artykokow}}, co wszystko robimy podobnie jak w rozdziale: {{LinkŚródtytuł|inicjacja_i_kompletowanie_zmiennych}}.
{{PobierzŚródtekst|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}
==== Definicja tablicy: {{Code|tab_stare}}, inicjowanie jej elementów w różnych przypadkach ====
Przedstawiamy tutaj ogólną definicję zmiennej: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, które określają ogólnie jaką jego wersję użyć w poszczególnych punktach funkcji: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}. Ta wersja jest jedynie sformułowana dla artykułów w rozdziale, a nie dla rozdziałów, bo w tablicy, do której jest ona wsadzana przyjmuje ona możliwy numerek od "2" do "13", a nie również "1". Jej wersja ogólna:
<syntaxhighlight lang="lua">
local tab_stare=
{
---- Początek elementów alternatywnych
{
---- Początek wersji dla artykułu
tab_pozycja_elementow_w_spisie_rzeczy[1], -- artykuł bez pełnej nazwy ksiązki, bez parametrów i nagłówka, bo ich nie posiadałna samym początku;
---- lub
{
tab_pozycja_elementow_w_spisie_rzeczy[1][1], -- artykuł bez pełnej nazwy książki, bez parametrów i nagłówka;
tab_pozycja_elementow_w_spisie_rzeczy[1][2], -- parametry artykułu, z którym on został wywołany w linku;
tab_pozycja_elementow_w_spisie_rzeczy[1][3], -- nagłówek strony, wstawiany po parametrach lub nazwie strony;
["LINK"]=true, -- zmienna świadcząca, że nazwa artykułu jest z parametrami i nagłówkiem;
},
---- Koniec wersji dla artykułu
tab_pozycja_elementow_w_spisie_rzeczy[2], -- nazwa linku artykułu normalnego, czy szablonowego;
---- Początek elementów alternatywnych dla przekierowania
---- Poczatek parametrów przekierowania
{
tablica_przekierowania[2], -- nazwa przekierowania artykułu;
tablica_przekierowania[3], -- parametry przekierowania artykułu;
tablica_przekierowania[4], -- nagłówek przekierowania artykułu;
["LINK"]=true, -- zmienna świadcząca, że nazwa przekierowania artykułu jest z parametrami i nagłówkiem;
},
---- lub
tablica_przekierowania[2], -- nazwa przekierowania artykułu;
---- Koniec parametrów przekierowania
tablica_przekierowania[1], -- tablica o definicji, którego przedstawienie:
{
nazwa_przestrzeni_strony_przekierowania, -- nazwa przestrzzeni nazw przekierowania artykułu;
nazwa_przestrzeni_ksiazki_strony_przekierowania, -- nazwa przestrzeni książki przekierowania artykułu;
nazwa_ksiazki_strony_przekierowania, -- nazwa książki orzekierowania artykułu;
true/false, -- true - gdy strona jest przekierowaniem, gdy strona główna jest taka, lub przekierowanie wskazuje na tą samą książkę, chociaż ono jest w innej;
true/false, -- true, gdy przekierowanie wskazuje na artykuł w taj samej książce, false, gdy nie;
czy_przekierowanie, -- (true/false): true - gdy strona, nie główna podręcznika, jest przekierowaniem, false - jak nie, to strona główna książki;
};
-- koniec przedstawienia;
---- lub
nil, -- dotycząca przekierowania artykułu, a tutaj strona nie ma przekierowania, więc: nil;
nil, -- dotycząca tablicy książki, na którą wskazuje przekierowanie, a tutaj nie ma tablicy, więc: nil;
---- Koniec elementów alternatywnych dla przekierowania
tab_pozycja_elementow_w_spisie_rzeczy[3], -- kod języka;
tab_pozycja_elementow_w_spisie_rzeczy[4], -- kod projektu;
tab_pozycja_elementow_w_spisie_rzeczy[5], -- adres artykułu bez przetworzenia w linku normalnym,czy szablonowym;
ile_dodac_do_poziomu_artykulu_lub_nil, -- parametr mający tylko wartości: 1, gdy do aktualnego poziomu musi być dodane jeden - ta wartość, tylko dotyczy artykułów należących do tej samej książki, lub: nil, gdy nic, czyli w pozostałych przypadkach;
tab_pozycja_elementow_w_spisie_rzeczy[6], -- "url", pozycja świadcząca, że to jest link zewnętrzny, a nil, gdy to jest normalny link;
},
---- lub
tab_pozycja_elementow_w_spisie_rzeczy[1], -- nazwa artykułu linku, która nie posiada, ani parametrów w sobie, a po nim nagłówka, lub bezpośrednio po nazwie;
---- lub
{
tab_pozycja_elementow_w_spisie_rzeczy[1][1], -- nazwa artykułu bez parametrów i nagłówka;
tab_pozycja_elementow_w_spisie_rzeczy[1][2], -- parametry artykułu, z którym on został wywołany w linku;
tab_pozycja_elementow_w_spisie_rzeczy[1][3], -- nagłówek strony, wstawiany po parametrach lub nazwie strony;
["LINK"]=true, -- zmienna świadcząca, że nazwa artykułu jest z parametrami i nagłówkiem;
},
---- Koniec elementów alternatywnych
{
#przedrostek_listy, -- poziom listy, w którym jest artykuł, dla artykułów w linii z listą, w innym wypadku dla artykułu znajdującego się w rozdziale dodatnim, czy ujemnym jest zero;
przedrostek_listy, -- przedrostek listy w postaci wzoru, który jest w nawiasie we wzorze do przechwytywaniem: "\n([;%*:#])", przeciwnie dla artykułów w rozdziale dodatnim ma wartość pustą;
tekstowy_przedrostek, -- numeracja dodatkowa w rozdziale dla artykułu, gdy nie ma takiej numeracji, bo nie da się jej wydzielić, to ma wartość pustą;
w_rozdziale, -- czy artykuł jest w rozdziale dodatnim normalnym, czy centrowanym znacznikowym lub szablonowym, wtedy "true", w przeciwnym wypadku: "false";
},
linia_artykokow, -- skompletowana linia z artykułem, dla którego jest pozycja: "tab_stare";
true/false, -- true, gdy nazwa artykułu pochodzi bezpośrednio od szablonu {{SpisTreści}}, a w przeciwnym wypadku ma wartość: false;
true/false, -- true, gdy artykuł pochodzi z tego samego podręcznika, przeciwnie: false;
---- Początek elementów alternaatywnych
Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2), -- który numer artykułu, w momencie wsadzenia do tabeli zbierania rozdziałów i w nich artykułów, nawet w rozdziale;
---- lub
nil, -- nil, wtedy gdy link jest tak sobie dodany, który nie należy do żadnego spisu, a po nim elementy jego z nagłówkiem natomiast należą;
---- Koniec elementów alternatywnych
};
</syntaxhighlight>
W powyższym: {{Tag|syntaxhighlight|parametry=lang="lua"}}, dla elementu: {{Code|<nowiki>---- lub</nowiki>}}, jest powiedziane, że są dostępne alternatywy, które są zawarte w tablicy, że wybieramy te, aby nie spowodować czysto podwójnej tablicy, aby każda tablica zawierały inne elementy, jak wiele, a nie jedną tablicę, jak i łańcuchy znaków, wartość nil, powoduje, że czy ma być taka tablica, ale nie podwójna, co to znaczy podowójna, tzn. tablica w sobie zawiera inną jedyną tablicę, a tak nie może być, a jak zawiera jedną tablicę, to musi posiadać inne nienilowe elementy.
== Funkcje tablicy transportu ==
=== {{Śródtytuł|p.AnalizaNapisuWprowadzeniaTekstu}}{{Code|p.AnalizaNapisuWprowadzeniaTekstu}} ===
Funkcja przyjmuje jako parametr nieskompletowaną i nieprzetworzony tekst napisu wprowadzenia tekstu. On kompletuje i przekształca go w odpowiedni sposób, aby otrzymać czysty tekst tytułu rozdziału.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Ten tekst tytułu rozdziału, o którym mówimy.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci}}
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
}}
==== Obiekty typu {{nobold|{{Code|SZABLON}}}} ====
Funkcja korzysta z funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, funkcja ma zdefiniowaną pierwszą jej funkcję, która dla: {{Code|obiekt {{=}} "SZABLON"}}, używamy pierwsze dwie tabelę, te tabele:
Pierwsza, która służy do zamieniania szablonów na ich parametry, tutaj pierwsza, to jest tablica: {{Code|{{sr|#p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu={
["MDL:RozszerzonyLink"]=1,
["Kompletność"]="",
["Kompletność krótka"]="",
["Kompletność junior"]="",
["Książka"]="",
};
</syntaxhighlight>
Druga: {{Code|{{sr|#p.szablony_dozwolone_w_nazwach_linkowych|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_dozwolone_w_nazwach_linkowych}}, też służy do tego samego.
Funkcja wykorzystuje tablice szablonów korekt umieszczonych w nazwie linku, czy to normalnego, czy szablonowego (inteligentnego), którego definicja {{Patrz|p.szablony_dozwolone_w_nazwach_linkowych}}:
<syntaxhighlight lang="lua">
p.szablony_dozwolone_w_nazwach_linkowych={
["Korekta"] =2,
};
</syntaxhighlight>
===== Funkcje zawartości i dodatków, dla szablonów =====
One służą do zamieniania wywołań szablonowych na odpowiednie ich zawartości parametrów określone przez numery parametrów tych elementów w tych tabelach. Jeżeli przy którym wywołaniu przy wykorzystaniu kolejnych tych tabel przy użyciu funkcji: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}, nastąpiło zamienienie, to funkcja pierwsza w: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, zakańcza się z tą wartością. A jeżeli nie to uruchamia się funkcja dodatków: {{Code|{{sr|#p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu|p=StronicowyParser/Rozdziały}}}}, a jeśli nastąpiło zastąpienie, to funkcja kompletowania się kończy z tą wartością.
===== Szablonowe linki =====
Dalej, jeżeli tak się nie stało, to uruchamia się funkcja parametrów, w którym wywołanie szablonowe jest rozkładane na nazwę szablonu, modyfikatory i parametry. Dalej jest sprawdzanie, czy jest to link inteligentny według funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, a gdy jest, to funkcja kończy swoje działania z nazwą tego linku lub jego adresem wewnętrznym, a jeśli on nie jest tym, to sprawdza, czy są inne szablonowe linki, które podejrzewa się, poprzez wywołanie funkcji: {{Code|{{sr|#p.NazwaInnegoSzablonowegoLinkowegoObiektu|p=StronicowyParser/Potrzebne}}}}, a jeżeli jest tym linkiem, to funkcja składania zwraca też jak poprzednio nazwę linku lub jego adres wewnętrzny. A gdy nie, to w innym przypadku sprawdzane, czy to jest inny link wewnętrzny generowany przez szablony, które sprawdza funkcja tutaj: {{Code|{{sr|#p.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli szablon jest tym linkiem, to funkcja składania zwraca jego nazwę linkową.
===== Szablony rozwijane przez {{lpg|JavaScript}} =====
A następnym krokiem jest sprawdzanie, czy nazwa szablonu jest jednych z elementów z tablicy: {{LinkPatrz|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}}, która ma ten element, te szablony wymienione w tej tablicy są po to, aby służyły do rozwijania przez JavaScript, są to elementy wikikodu, które są pracochłonne ze względu na ich skomplikowany kod, czy wikikod, nawet {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, i dlatego ich się nie rozwija przez stronicowy parser: {{Code|{{ld2|StronicowyParser}}}}, te nazwy szablonów są określone tablicą: {{Code|{{sr|#p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu={
["Cytuj"]=true,
["Cytuj stronę"]=true,
["Cytuj pismo"]=true,
["Cytuj odcinek"]=true,
["Cytuj książkę"]=true,
["Cytuj grę komputerową"]=true,
};
</syntaxhighlight>
I funkcja wtedy zwraca skompletowany szablon bez rozwijania jego, pod warunkiem, jeżeli jest tym szablonem o tej nazwę szablonu wywołującego.
===== Co jest zwracane w przypadku szablonów =====
Te powyżej elementy dla funkcji parametrów, w niej wartości są zwracane do niej, a jeżeli ona przyjmuje wartość nienilową, to do funkcji składania zwracana jest jego wartość, a przeciwnie jest zwracane pierwszy parametr szablonu do niej.
==== Obiekty typu: {{nobold|{{Code|NOWIKI}}}}, {{nobold|{{Code|PRE}}}} i {{nobold|{{Code|ŹRÓDŁO}}}} ====
A gdy dla elementów, jeśli nazwa obiektu jest: {{Code|obiekt {{=}} "NOWIKI"}}, {{Code|obiekt {{=}} "PRE"}}, lub: {{Code|obiekt {{=}} "ŹRÓDŁO"}}, znacznik jest rozkładany na czynniki pierwsze, a jeżeli nie ma zawartości, to przez funkcję składania jest zwracana wartość pusta, a jeśli nie, to pewne znaki specjalne tagu {{Tag|nowiki}}, które mają w nim być zamienione na tekst, są zamieniane na kody '''HTML''', co po tym, ta ona jest zwracana.
==== Obiekty typu: {{nobold|{{Code|MATH}}}}, {{nobold|{{Code|GALERIA}}}}, {{nobold|{{Code|MAPAOBRAZU}}}}, i {{nobold|{{Code|INNEPRE}}}} ====
A jeżeli wartość: {{Code|obiekt}}, jest nie równa: {{Code|MATH}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} lub {{Code|INNEPRE}}, wtedy zawartość zmiennej: {{Code|szablon}}, jest wykorzystana przez funkcję z modułu: {{Code|{{ld2|Specjalne}}}}, które w tej podanej zmiennej usuwa komentarze według: {{Code|{{sr|#p["UsuńKomentarze"]|p=Specjalne}}}}. Zamieniane są w nim linki zewnętrzne i wewnętrzne na ich nazwy lub adresy według: {{Code|{{sr|#p["ZamieńLinkiZewnętrzneNaTekst"]|p=Specjalne}}}} i {{Code|{{sr|#p["ZamieńLinkiWewnętrzneNaTekst"]|p=Specjalne}}}}. Są usuwane rozwinięte znaczniki szablonów stylów, używając do tego celu: {{Code|{{sr|#p["UsuńSzablonyStylów"]|p=Specjalne}}}}. To samo jest robione ze znacznikami na podstawie: {{Code|{{sr|#p["UsuńZnaczniki"]|p=Specjalne}}}}. Z tekstu szablonu są kasowane normalne kategorie nieszablonowe: {{Code|{{sr|#p["UsuńKategorie"]|p=Specjalne}}}}. Pozbywamy się, z zawartości, wywołań plików i interwiki, na podstawie: {{Code|{{sr|#p["UsuńWywołaniaPlików"]|p=Specjalne}}}} i {{Code|{{sr|#p["UsuńInterwiki"]|p=Specjalne}}}}. Dalej z tego obiektu są usuwane znaki specjalne na podstawie: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}.
A gdy mamy do czynienia z innymi znacznikami, to są zwracane zamiast nich wartości puste do funkcji kompletowania.
Dane, z funkcji kompletowania, które są zwracane do niej, są usuwane w niej znaki specjalne z całości tekstu rozdziału: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, i znaki białe z końców tekstu. Powtarzające się te znaki kolejne wewnątrz są zamieniane na jedną spację, to się dzieje według funkcji: {{Code|{{sr|#p["UsuńZbędneBiałeZnaki"]|p=Specjalne}}}}.
Cały taki wynik operacji robiony w funkcji w nagłówku jest zwracany do niej, to jest, co uzyskujemy, nazwą rozdziału w postaci przetworzonej.
=== {{Śródtytuł|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}{{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} ===
Opisane tutaj są podfunkcje, z których korzysta ta funkcja, co one robią, do czego są wykorzystane.
==== Opis funkcji: {{nobold|{{Patrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} ====
Funkcja służy do zbierania nagłówków i z niej danych, tzn. linków normalnych i inteligentnych, a także są zbierane nagłówki z listy bez artykułów i do nich elementy podlisty z artykułami w postaci wywołań linkowych w niej. Tworzona jest specjalnie dla tego tablica: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, która w odpowiedni sposób po przekształceniach wsadzana jest do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}.
| 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
| 3 = {{Code|nazwa_spisu_tresci}} | _3 = Jak w: {{LinkPatrz|nazwa_spisu_tresci}}.
| 4 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _4 = Czy dany spis treści dla książki dla jej artykułu korzystanego, dla innej książki, wtedy to artykuł niekorzystany.
| 5 = {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}} | _5 = Jest to wewnętrzny adres książki głównego spisu treści, jest to taki adres, na który wskazuje przekierowanie innej książki.
| 6 = {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{Patrz|__FUNKCJA_ZBIERANIA_DANYCH}} | _6 =
{{Śródtekst|uchwyt=__FUNKCJA_ZBIERANIA_DANYCH|tekst=
Jest to funkcja, która zbiera informacje o aktualnym artykule, która jest spisem treści, w postaci nieprzetworzonej przez funkcje z modułu: {{Code|{{ld2|StronicowyParser/Rozdziały}}}}, opisanego w: {{Code|{{sr|Rozdziały|StronicowyParser - Rozdziały|p=StronicowyParser}}}}, ta funkcja kopiuje, np. tabele danych bazy modułu: {{Code|{{m|Szablonowe}}}}, tzn: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, i tabelę rozkładu elementów w niej na czynniki pierwsze, tzn.: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, co jest napisane w module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, a w dokumentacji: {{Code|{{sr|#p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|p=StronicowyParser/ZbieranieDanychStron}}}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
__FUNKCJA_ZBIERANIA_DANYCH(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona);
</syntaxhighlight>
Funkcja nie zwraca niczego, jest funkcją, zwykłą bezwartościową procedurą, niezwracającą niczego.
}}
}}
==== Funkcje lokalne ====
Funkcja ma w sobie też definicję funkcji lokalnych zdefiniowanej w tej funkcji tutaj opisywanej.
===== {{Śródtytuł|FunkcjaIteratoraTekstuZakodowego}}{{Code|FunkcjaIteratoraTekstuZakodowego}} =====
Funkcja służy do pomijania tego, co nie jest linkiem wewnętrznym, czy zewnętrznym, czyli oznaczone kodami: {{Code|LINKW}} lub {{Code|LINKZ}}, czy nawet szablonem linku inteligentnego, czy innego służącego do generowania spisu treści, do tego celu również używa funkcji: {{LinkŚródtytuł|CzySzablonLinkLubLicencja}}, oraz tego co nie jest w liście określonym wzorem: {{Code|<nowiki>\n([#:*;]+)</nowiki>}}, z możliwym na początku tekstem, ale nie z kodami, w danej pozycji listy, lub co ewentualnie nie może być w możliwej liście, tzn.: {{Code|<nowiki>\n([#:*;]*)</nowiki>}}, ale wtedy musi tam być z tekstem, ale nie z kodami, na początku danej pozycji listy, nawet jeśli to nie jest lista, to też tak samo.
Jeżeli funkcja nie ma kodów linków wewnętrznych, czy to normalnych, czy szablonowych, to się zakańcza z wartością domyślną {{Code|nil}}, w przeciwnym wypadku do sprawdzenia używa do tego funkcji: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}}, do sprawdzania, czy to jest szablon linku, nawet licencji, a jeżeli ta funkcja zwraca wartość {{Code|true}}, to cała funkcja zwraca {{Code|nil}}. Jeżeli oba te sposoby nie dały rezultatu {{Code|true}}, to wtedy funkcja zwraca wartość pustą, czyli określonym ciągiem znakowym o szerokości zerowej.
Funkcja ma w sobie dwie definicje funkcji: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}} i {{LinkŚródtytuł|CzySzablonLinkLubLicencja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FunkcjaIteratoraTekstuZakodowego=function(szablon,obiekt,kod)...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}}.
}}
====== {{Śródtytuł|PomijajLinkiOrazLicencje}}{{Code|PomijajLinkiOrazLicencje}} ======
Funkcja służy do sprawdzania, czy są odpowiednie szablony w kodzie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function PomijajLinkiOrazLicencje(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
Funkcja sprawdza, czy to są szablony spisu treści określone tablicą o kluczach, którymi są nazwy szablonów, z wartościami {{Code|true}}, czyli: {{Code|{{sr|#p.szablony_licencji|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_licencji}}:
<syntaxhighlight lang="lua">
p.szablony_licencji={
["Licencja"]=true,
};
</syntaxhighlight>
Tzn., czy to są szablony ozdobne woluminu, którego tablica: {{Code|{{sr|#p.szablony_ozdobne_stron_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_ozdobne_stron_woluminu}}, jest podobnie zbudowana, co poprzednia:
<syntaxhighlight lang="lua">
p.szablony_ozdobne_stron_woluminu={
["MDL:RozszerzonyLink"]=true,
};
</syntaxhighlight>
A jeżeli to są te szablony, to funkcja zwraca wartość {{Code|true}}.
Jeżeli jednak to nie są te szablony, należy użyć tablic, tak samo zbudowanej jak poprzednie, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
};
</syntaxhighlight>
Lub innej, inaczej zbudowanej niż poprzednie, ale ważne, że ma wartość niefałszywą, czyli taką tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}, jest:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Jak są te nazwy szablonów określone ich kluczami tych tablic, to funkcja zwraca wartość {{Code|true}}. A jeżeli jednak nie, to funkcją: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, jest sprawdzane, czy to jest link inteligentny, nawet przekierowanie, jeżeli link taki jest, to funkcja zwraca wartość w tym wypadku {{Code|true}}. W przeciwnym wypadku, jak nie zwrócił tej wartości, bo taka nie jest nazwa szablonu, to funkcja nic nie zwraca.
====== {{Śródtytuł|CzySzablonLinkLubLicencja}}{{Code|CzySzablonLinkLubLicencja}} ======
Funkcja sprawdzająca za pomocą: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}}, na podstawie parsowania tekstu szablonu funkcją: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, z parsowanym przechwytywanym typem obiektu: {{Code|obiekt}} {{LinkPatrz|obiekt}}, równym {{Code|SZABLON}}. A jeżeli funkcja ta wspomniana w tekście zwróci {{Code|true}}, to funkcja taki obiekt policzy.
Jeżeli liczba policzonych obiektów i znalezionych w wyniku parsowania jest większa od zera, to funkcja w nagłówku zwróci wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local CzySzablonLinkLubLicencja=function(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
===== {{Śródtytuł|iteratorTekstuNaglowka}}{{Code|iteratorTekstuNaglowka}} =====
Jest to funkcja iteratora, którego funkcja zwracana (iterator) zwraca parametry, dla rozdziałów dodatnich i pozycji list.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function iteratorTekstuNaglowka()
... ---- Kod przed zwróceniem iteratora;
return function()
... ---- Ciało funkcji iteratora;
end;
end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = Brak parametrów. | komórka1 = tak
}}
Iterator (funkcja zwracana przez funkcję w nagłówku) zwraca parametry w wyniku kolejnych wywołań:
<syntaxhighlight lang="lua">
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,true/false;
</syntaxhighlight>
Parametry zwracane przez iterator:
{{OpisParametrów
| 1 = {{Code|przedrostek_listy}} | _1 = Przedrostek pozycji listy, dla rozdziałów dodatnich jest wartością pustą.
| 2 = {{Code|tekstowy_przedrostek}} | _2 = Numeracja pozycji w liście lub w nagłówku dodatnim.
| 3 = {{Code|wyzyskane_wywolanie_szablonu_spis_tresci}} | _3 = Jest to rozdział bez numeracji i przedrostka pozycji listy.
| 4 = {{Code|true/false}} | _4 = Wartość {{Code|true}} świadczy o rozdziale dodatnim, a w przypadku innym funkcja zwraca zawsze wartość tą {{Code|false}}, jako ostatni element zwracany.
}}
Funkcja jest przykowana na rozdziałów dodatnich i pozycji list oraz innych linii, dla tego pierwszego funkcja zwraca:
<syntaxhighlight lang="lua">
return "","",wartosc,true;
</syntaxhighlight>
Gdzie {{Code|wartość}} jest to zawartość napisu wprowadzenia tekstu (rozdziału dodatniego).
W przypadku list oraz innych niż rozdziały dodatnie samo wyrażenie regularne {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest okreslone przez wyrażenie:
<syntaxhighlight lang="lua">
local re="([#:*;]*)[^%S\n]*([%d%.]*[^%S\n]*[^\n]+)";
</syntaxhighlight>
Funkcja wykorzystuje funkcję: {{Code|{{sr|#p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu|p=StronicowyParser/Rozdziały}}}}, aby zamienić zawartość pozycji listy na rozdział bez numeracji i numerację, i dlatego ta funkcja zwraca te dwie wartości. Gdy funkcja jak nie znajdzie więcej linii (wyszukań), to zwraca wartość {{Code|nil}} mówiąca o zakończeniu iteracji iteratora, tzn. dane dla iteratora się zakończyły.
===== {{Śródtytuł|LiniaArtykulow}}{{Code|LiniaArtykulow}} =====
Funkcja dla szablonów kompletowania określonym tabelką: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_kompletowania_stron_woluminu}}, o definicji:
<syntaxhighlight lang="lua">
p.szablony_kompletowania_stron_woluminu={
["Kompletność"]=true,
["Kompletność krótka"]=true,
["Kompletność junior"]=true,
["Książka"]=true,
};
</syntaxhighlight>
Rozdziela linię na wiele obsługiwanych podlinii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaArtykulow(linia)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} {{Patrz|linia}} | _1 = Pojedyncza przetworzona linia.
}}
====== {{Śródtytuł|SzablonAnalizujKompletnosc}}{{Code|SzablonAnalizujKompletnosc}} ======
Funkcja sprawdza, czy dane wywołania szablonu, ma swoją nazwę szablonu, która jest nazwą szablonu kompletowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function SzablonAnalizujKompletnosc(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
====== Dalszy opis funkcji ======
Możliwe są dwie opcje, szablon kompletowania jest pierwszy, a drugi drugi, lub odwrotnie. Funkcja obsługuje te oba przypadki. Ona stawia przecinek dla obu wersji ustawień, jeśli potraktować układem link i szablon kompletowania, to wstawiany jest on pomiędzy tymi układami, aby rozdzielić na kolejne podlinie, w liście bez tych znaków pozycji.
Dzielimy to na elementy przy pomocy funkcji: {{LzLua|mw.text.split}}, z opcją jako drugi parametr, aby uwzględniał wyrażenia regularne {{Code|false}}.
W tych rozdzielonych linią tą funkcją dzielącą ciąg znakowy na tabelę, kody '''HTML''' przecinka są zamieniane na zwykły przecinek.
Funkcja zwraca tabelę podzielonej linii na mniejsze podlinie, który można iterować funkcją: {{Code|pairs}} lub {{Code|ipairs}}.
===== {{Śródtytuł|WsadzanieParametryDoTablicy}}{{Code|WsadzanieParametryDoTablicy}} =====
Funkcja z parametrami, która uruchamiana jest inną w: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}, która wstawia tabelę: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do ogólnej tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, ewentualnie do: {{Code|tabela_rozdzial_artykulow}} {{Patrz|tabela_rozdzial_artykulow}} na pozycję {{Code|numer_podtablicy_w_tablicy}} {{Patrz|numer_podtablicy_w_tablicy}}, a dokładniej na: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, w funkcji: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana)
return function(tabela_rozdzial_artykulow2,numer_podtablicy_w_tablicy,tab_stare)
... ---- ciało funkcji.
end;
end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = Jak w: {{LinkPatrz|linia}}.
| 2 = {{Code|czy_linia_uwzgledniana}} {{Patrz|czy_linia_uwzgledniana}} | _2 = Czy linię ma uwzględnić w powiększaniu poziomu o jeden dla artykułu.
}}
Parametry zwracanej funkcji przez tę w nagłówku:
{{OpisParametrów
| 1 = {{Code|tabela_rozdzial_artykulow2}} | _1 = Jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}}.
| 2 = {{Code|numer_podtablicy_w_tablicy}} | _2 = Jak w: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}.
| 3 = {{Code|tab_stare}} | _3 = Jak w: {{LinkPatrz|tab_stare}}.
}}
====== {{Śródtytuł|CzyZaliczac}}{{Code|CzyZaliczac}} ======
Funkcja sprawdza, czy z początkiem linii pozycji listy, bez przedrostka listy, jest z możliwym początkiem z odstępami i po nim cudzysłowem, po którym następują liczby, litery, w takim przypadku linia nie może składać się z tego z początkiem z literami lub cyframi, czyli ze znakami alfanumerycznymi, a po nim ze znakami interpunkcyjnymi. Jeśli to sprawdzenie było pozytywne, funkcja zwraca wartość logiczną odpowiadającą {{Code|true}}, w przeciwnym wypadku jest zwracane {{Code|false}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyZaliczac()...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = Brak parametrów funkcji. | komórka1 = tak
}}
Funkcja zwraca informację, czy daną linię traktować jako rozdział, chodzi tu o pozycje list, a w przypadku rozdziałów dodatnich wiadomo, że one są właśnie, że rozdziałami.
====== Dalszy opis funkcji ======
Funkcja sprawdza w funkcji zwracanej, czy rozważany rozdział jest centrowany danego artykułu, który siedzi pod rozdziałem lub w samym rozdziale, sprawdza, czy artykuł jest w rozdziale, sprawdza, czy linia jest uwzględniana: {{Code|czy_linia_uwzgledniana}} {{LinkPatrz|czy_linia_uwzgledniana}}. Funkcja sprawdza, czy w sekcji, czy w: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, czy istnieje element: {{Code|tab_stare[2]}} {{Patrz|tab_stare[2]}}, i dalszy: {{Code|tab_stare[2][1]}} {{Patrz|tab_stare[2][1]}} - ten element jest to w: {{Code|tab_stare}}, taki: {{Code|#przedrostek_listy}} {{Patrz|#przedrostek_listy}}, a jeżeli to sprawdzenie przeszło pozytywnie, który dla tego jest poziomem listy, lub zerowego rozdziału lub rozdziału dodatniego. Wtedy do: {{Code|tab_stare[2][1]}} {{LinkPatrz|tab_stare[2][1]}} jest ikrementowany on o liczbę jeden, czyli:
Dla każdej linii zmienna: {{Code|nowa_linia}} {{Patrz|nowa_linia}}, przyjmuje wartość {{Code|false}}, wtedy dla przypadku przeciwnego, tzn. gdy mamy rozdział i uwzględniamy artykuły w jednej linii, którym jest rozdział będący pozycją listy, w zmiennej: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, jest ustawiany element: {{Code|tab_stare[2][4]}} {{Patrz|tab_stare[2][4]}}, czyli zmienna: {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}, zaczyna przyjmować wartość {{Code|true}}. Wsadzany jest wtedy do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycję: {{Code|numer_podtablicy_w_tablicy}} {{LinkPatrz|numer_podtablicy_w_tablicy}}, czyli to jest też: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, element {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
Gdy: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}}, gdy jednak przyjmuje wartość {{Code|false}}, wtedy jeśli poziom rozdzialu istnieje lub przedrostek listy: {{Code|#przedrostek_listy}} {{LinkPatrz|#przedrostek_listy}}, jest większy od zera, i istnieje wiele artykułów w pozycji liście, wtedy: {{Code|ile>0}} (patrz na zmienną: {{Code|ile}} {{LinkPatrz|ile}}), lub funkcja: {{LinkŚródtytuł|CzyZaliczac}}, przyjmuje wartość odpowiadające prawdziwej, w taki przypadku zmiennej: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}}, przydzielamy wartość {{Code|true}}, by dalsze artykuły można było wsadzić, do tablicy z nowym rozdziałem. Powiększamy numer rozdziału o jeden, tzn.: {{Code|numer_rozdzialu_w_ksiazce}} {{Patrz|numer_rozdzialu_w_ksiazce}}, wtedy w zmiennej: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}, tabeli rozdziałów i w nich artykułów dla tej pozycji przydzielamy wartość równą tablicy pustej. Liczymy dla tego rozdział z artykułami, z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, czyli obliczamy napis rozdziału, wtedy do pierwszej pozycji tablicy utworzonej w: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, dla miejsca: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, czyli: {{Code|tabela_rozdzial_artykulow}} {{LinkPatrz|tabela_rozdzial_artykulow}}, piszemy:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{-#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,false,},linia,};
</syntaxhighlight>
Gdzie: {{Code|rozdzial_na_tekst}} {{Patrz|rozdzial_na_tekst}}, to policzony rozdział, a {{Code|-#przedrostek_listy}} {{Patrz|-#przedrostek_listy}} to poziom rozdziału ujemnego, i dlatego minus. A: {{Code|przedrostek_listy}}, to znaki początkowe z listy: {{Code|wzor_do_linii_z_lista}} {{LinkPatrz|wzor_do_linii_z_lista}}, a: {{Code|tekstowy_przedrostek}}, to numeracja tego rozdziału. Wartość {{Code|false}} to jest ze ten rozdział nie jest centrowany, a: {{Code|linia}} {{LinkPatrz|linia}}, to wyzyskana linia bez początku pozycji listy. Ustawiamy: {{Code|tab_stare[2][4]}} {{LinkPatrz|tab_stare[2][4]}}, na wartość {{Code|true}} i element: {{Code|tab_stare[6]}} {{Patrz|tab_stare[6]}}, ustawiamy na zero. Tworzymy tablicę pustą na pozycję: {{LinkPatrz|numer_podtablicy_w_tablicy}}, tablicy: {{Code|tabela_rozdzial_artykulow}} {{LinkPatrz|tabela_rozdzial_artykulow}}, i do tej tablicy dodajemy: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, za pomocą funkcji: {{LzLua|table.insert}}.
A jeżeli nie jest tworzony nowy rozdział z listy w tabeli: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, to na pozycję: {{Code|numer_podtablicy_w_tablicy}} {{LinkPatrz|numer_podtablicy_w_tablicy}}, jest dodawany element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, również tak jest robione, gdy artykuły znajdują się w rozdziale dodatnim, tzn. równaniowej lub centrowanej, tzn. wtedy: {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}, przyjmuje wartość {{Code|true}}.
===== {{Śródtytuł|AnalizaLiniiObiekty}}{{Code|AnalizaLiniiObiekty}} =====
Za pomocą funkcji: {{LinkŚródtytuł|LiniaArtykulow}}, linia: {{Code|linia_rozwazana}} {{Patrz|linia_rozwazana}}, jest rozdzielana na wiele linii. To wiele linii w postaci tabeli, są iterowane od: {{Code|k {{=}} 1}}, do: {{Code|k {{=}} #tab_linia}}, gdzie: {{Code|#tab_linia}} {{Patrz|#tab_linia}}, jest to długość linii, tzn. liczba elementów numerowanych tablicy, tzn. od 1 do wzwyż aż do napotkania najbliższej przerwy lub końca. Wtedy dla pojedyńczej literacji mamy: {{Code|tab_linia[k]}} {{Patrz|tab_linia[k]}}.
Iterujemy po kodach dla linii: {{Code|tab_linia[k]}} {{LinkPatrz|tab_linia[k]}}, przy pomocy funkcji: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|p.IteratorSzablonowyZakodowanegoTekstu}}, iteratorem: {{Code|iterator2}} {{Patrz|iterator2}}.
Inicjujemy zmienną: {{Code|tab_nieobslugiwane {{=}} nil}}, następnie iterujemy: {{LinkPatrz|iterator2}}, uzyskując w każdej iteracji: {{Code|szablon}} {{LinkPatrz|szablon}}, {{Code|obiekt}} {{LinkPatrz|obiekt}}, i {{Code|kod}} {{LinkPatrz|kod}}.
Gdy mamy do czynienia: {{Code|SZABLON}}, lub: {{Code|LINKW}}, albo: {{Code|LINKZ}}, wtedy dla elementów tego pierwszego bierzemy tablicę: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}, dla elementu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}.
Jeżeli ten element: {{Code|tabela_spisu}}, istnieje, element pierwszy: {{Code|tabela_spisu[1]}}, jest równy wartości {{Code|true}}, wtedy mamy do czynienia z szablonem {{s|SpisPozycja}}. Jej element: {{Code|tabela_spisu["numer_link"]}}, istnieje i jest równy: {{Code|tyt}} {{Patrz|tyt}}. Iterujemy po kluczach i jego wartościach tego szablonu i sprawdzamy, który element jest równy właśnie tej wartości, a jeżeli jest taki, to dla elementów nie równych niemu, a właściwie w jego wartości iterujemy po kodach funkcją: {{LinkPatrz|p.IteratorSzablonowyZakodowanegoTekstu}}, dla tej wartości, w ten sposób zbieramy tablicę wielowymiarową najpierw po: {{Code|obiekt}} {{LinkPatrz|obiekt}}, później po: {{Code|kod}}, {{LinkPatrz|kod}}, którą nazwiemy: {{Code|tab_nieobslugiwane}} {{Patrz|tab_nieobslugiwane}}, którego każda jej wartość jest równa {{Code|true}}. Ta tablica mówi dla jakich elementów ma nie zbierać w tablicy elementów w głównej tablicy rozdziałów i jego artykułach.
Dla elementu {{Code|tyt}} {{LinkPatrz|tyt}} tablicy parametrów przedrostek listy {{Code|przedrostek_listy}} ustawiamy na pusty, i liczmy numerację {{Code|tekstowy_przedrostek}} i zmienną: {{Code|szablon}} {{LinkPatrz|szablon}}, i ustawiamy zmienną {{Code|przerwij}} {{Patrz|przerwij}} na {{Code|true}}, aby dla tego szablonu nie zbierać elementów w tablicy rozdziałów i jego artykułów.
W przypadku przeciwnym dla: {{Code|tabela_spisu}}, gdy ma wartość {{Code|false}}, wtedy mamy do czynienia z funkcją: {{s|SpisZw}}. Dla niej liczymy: {{Code|przedrostek_listy}}, którą ustawiamy na pustą wartość. A: {{Code|tekstowy_przedrostek}}, liczmy uzyskując parametr o kluczu: {{Code|tabela_spisu["numer"]}}, którym jest parametr o numerze: {{Code|1}}, i {{Code|szablon}} {{LinkPatrz|szablon}}, który liczmy z parametrów szablonu o kluczu {{Code|tabela_spisu["link"]}}, którym jest numer {{Code|2}}. Ustawiamy tutaj zmienną: {{Code|przerwij}} {{LinkPatrz|przerwij}}, na wartosć {{Code|true}}.
====== {{Śródtytuł|CzyObslugiwane}}{{Code|CzyObslugiwane}} ======
Funkcja sprawdzająca, które elementy są obsługiwane, jeśli istnieje tablica: {{Code|tab_nieobslugiwane}} {{LinkPatrz|tab_nieobslugiwane}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local CzyObslugiwane=function()...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = Brak parametrów. | komórka1 = tak
}}
====== Dalszy opis funkcji ======
; Uwzględnianie tablicy, reprezentujące artykuł w rozdziale, wstawiany do tablicy danego rozdziału{{dk}}
Sprawdzany jest warunek:
<syntaxhighlight lang="lua">
if((--[[wliczaj_artykuly_tego_rozdzialu]] true)and(not przerwij)and((not tab_nieobslugiwane)or(CzyObslugiwane())))then
</syntaxhighlight>
Jeśli to nie jest spełnione, to sprawdzamy {{ZobaczTeż|link_szablon}}, czy jest zebrana licencja z autorem według zmiennej: {{Code|licencja_z_autorem}} {{Patrz|licencja_z_autorem}}, i sprawdzamy, czy: {{Code|szablon}} {{LinkPatrz|szablon}}, jest wnetrzem szablonu, jeżeli tak, to ono przyjmuje wartość odpowiadająca prawdziwej, przeciwnie ma fałszywą.
Jeżeli jest on spełniony, wtedy wywołujemy funkcję: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}, później dla:
<syntaxhighlight lang="lua">
if((not czy_obslugiwane)and(not numer_rodzaju_artykulu_poprz))then
</syntaxhighlight>
Sprawdzamy, czy jest zrobione {{LinkZobaczTeż|link_szablon}}.
; Szablony licencji, i jego parametry, uwzględnianie jego tylko raz ca całą książkę, mieszcząca się w artykule głównej książki{{dk}}
Następnie dla warunku, który musi być spełniony:
<syntaxhighlight lang="lua">
if((not numer_rodzaju_artykulu_poprz)and(not przerwij)and(link_szablon)and((not tab_pozycja_elementow_w_spisie_rzeczy)or(not tab_pozycja_elementow_w_spisie_rzeczy[1]))and(czy_artykul_korzystany)and(licencja_z_autorem))then
</syntaxhighlight>
Sprawdzamy szablony licencji, takich jak: {{s|Licencja}}, według tablicy: {{Code|{{sr|#p.szablony_licencji|p=StronicowyParser/obiekty}}}}.
Dla parametrów szablonu, liczymy jego parametry o kluczach, tzn.: {{Code|Autor}} {{Patrz|Autor}}, {{Code|Ukończone szkoły}} {{Patrz|Ukończone szkoły}}, {{Code|Email}} {{Patrz|Email}}, {{Code|Dotyczy}} {{Patrz|DotyczyDotyczy}}, {{Code|Licencjonowanie}} {{Patrz|Licencjonowanie}}, {{Code|Umowa prawna}} {{Patrz|Umowa prawna}} i {{Code|Konsekwencje}} {{Patrz|Konsekwencje}}, którego wartości przydzielamy do odpowiednich zmiennych. Każdą z tych zmiennych kompletujemy funkcją: {{Code|{{sr|#p.DekodowanieTekstuDekodowanieTekstu|p=StronicowyParser/Potrzebne}}}}, poprzez zwracaną przez nią funkcję, w której jest wykorzystywana: {{LzLua|frame:preprocess}}, do rozwijania. A dla elementu istniejącego: {{Code|Autor}}, piszemy zmienną: {{Code|licencja_z_autorem}} {{LinkPatrz|licencja_z_autorem}}, któremu przydzielamy wartość {{Code|false}}, co spowoduje, że nie będziemy analizowali jeszcze raz innego szablonu licencji.
Te zmienne tego szablonu zbieramy natomiast w tablicy: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}, dane dotyczące licencji, więc:
<syntaxhighlight lang="lua">
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
</syntaxhighlight>
Co później przerywamy pętle po: {{Code|iterator2}} {{LinkPatrz|iterator2}}, instrukcją: {{Code|break}}.
==== Dalszy opis funkcji {{nobold|{{LinkPatrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} ====
Ściągamy tekst, tabelę bazy i tabelę parametrów strony o nazwie: {{Code|nazwa_modulu}}, przy pomocy funkcji: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, według:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=nil;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Uruchamiamy funkcję: {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{LinkPatrz|__FUNKCJA_ZBIERANIA_DANYCH}}, jeżeli istnieje.
Dalej wywołujemy funkcję: {{Code|{{sr|#p.IterTekst|p=StronicowyParser/Rozdziały}}}}, w celu znalezienia tekstu: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, i iteratora: {{Code|iterator}} {{Patrz|iterator}}, po napisach wprowadzenia tekstu rozdziałów i ich zawartości rozdziałów i na podstawie:
<syntaxhighlight lang="lua">
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,
__FUNKCJA, ---- funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość;
__FUNKCJA2, ---- funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału);
__FUNKCJA_ANALIZA_SPISU ---- funkcja do analizy i modyfikacji tekstu (może zwracać wartość: nil) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: IterTekst, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: SpisTreści, co jest uwidocznione w module: Moduł:StronicowyParser/SpisTreści;
);
</syntaxhighlight>
Opis parametrów zwracanych:
{{OpisParametrów
| 1 = {{Code|iterator}} {{Patrz|iterator-IterTekst}} | _1 = Iterator po rozdziałach i jego zawartościach.
| 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu-IterTekst}} | _2 = Tekst przetworzony rozdziału.
}}
Odczytujemy tabelę: {{LinkPatrz|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}} i dalej: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, o definicji:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Robimy kopię tych tabel i przyłączamy do metatabeli: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, przy pomocy funkcji: {{LzLua|setmetatable}}, aby nie odrózniać tych rozdziałów ze względu na wielkość liter i polskie znaki.
Inicjiujemy zmienną: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, wartością: {{Code|1}}, aby zbierać po kolei artykuły ze poszczególnego pojedynczego spisu treści.
Ustawiamy maksymalny rozmiar rozdziału zerowego na {{Code|50}}, w zmiennej: {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{Patrz|maksymalny_rozmiar_rozdzialu_zerowego}}, według:
<syntaxhighlight lang="lua">
local maksymalny_rozmiar_rozdzialu_zerowego=50;
</syntaxhighlight>
===== {{Śródtytuł|AnalizaRozdzialu}}{{Code|AnalizaRozdzialu}} =====
Jest to funkcja do zbierania danych z pojedynczego rozdziału o pewnej linii, inicjowana z jego parametrami, także tekstem rozdziału.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaRozdzialu(rozdzial,linia_rozdzialu,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|rozdzial}} {{Patrz|rozdzial}} | _1 = Jest to tekst rozdziału.
| 2 = {{Code|linia_rozdzialu}} {{Patrz|linia_rozdzialu}} | _2 = Jest to linia z rozdziałem.
| 3 = {{Code|text}} {{Patrz|text}} | _3 = Jest to tekst rozdziału o pewnym napisie wprowadzenia tekstu.
| 4 = {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}} | _4 = Jest to poziom danego rozdziału.
| 5 = {{Code|poczatek_rozdzialu}} {{Patrz|poczatek_rozdzialu}} | _5 = Początek pozycji listy rozdziałów '''mechanizmu {{NS|k=mw|l=tak|pk=d}}'''.
| 6 = {{Code|numeracja}} {{Patrz|numeracja}} | _6 = Numeracja rozdziału.
| 7 = {{Code|czy_rozdzial_centrowany}} {{Patrz|czy_rozdzial_centrowany}} | _7 = Czy dany rozdział jest centrowany.
}}
====== Tabela artykułów rozdziałów i w nich artykułów oraz jego poszczególnych ======
Tworzymy tabelę: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, jeżeli nie istnieje, z pustą tablicą, a później dla elementu: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, jeżeli też go nie ma, to też pustą tablicą. Dalej liczymy napis wprowadzenia tekstu rozdziału dodatniego funkcją: {{LinkŚródtytuł|p.AnalizaNapisuWprowadzeniaTekstu}} i uwzględniamy je w tabeli rozdziałów dla danego rozdziału pod wartością: {{Code|tabela_rozdzial_artykulow[1]}}, w sposób:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany,},rozdzial,};
</syntaxhighlight>
Dalej wprowadzamy zmienną: {{Code|czy_spis_rzeczy_napis_wprowadzenia_tekstu}} {{Patrz|czy_spis_rzeczy_napis_wprowadzenia_tekstu}}, mówiącą, że rozpatrujemy rozdziały i artykuły w ramach spisu treści o nagłówkach typu: {{Code|Spis treści}}, czy: {{Code|SPIS RZECZY}}. Jeżeli wyszliśmy poza to, to ta zmienna, wtedy przyjmuje wartość fałszywą, a definicja inicjacji tej zmiennej jest:
<syntaxhighlight lang="lua">
local czy_spis_rzeczy_napis_wprowadzenia_tekstu=(poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[spreparowany_uzyskany_tekst_rozdzialu]);
</syntaxhighlight>
Gdzie:
{{OpisParametrów
| 1 = {{Code|poziom_rozdzialu}} | _1 = Jak w: {{LinkPatrz|poziom_rozdzialu}}.
| 2 = {{Code|czy_jest_spis_tresci}} {{Patrz|czy_jest_spis_tresci}} | _2 = Czy jesteśmy w spisie treści.
| 3 = {{Code|dalej_nie_rozwazaj_spis_tresci}} {{Patrz|dalej_nie_rozwazaj_spis_tresci}} | _3 = Zmienna mówiąca, że teraz jesteśmy poza spisem treści.
}}
====== Kiedy uwzględniamy artykuły rozdziału ======
Jeżeli jesteśmy w spisie, to zawsze są uwzględniane artykuły rozdziału, bo jest ustawiona zmienna: {{Code|wliczaj_artykuly_tego_rozdzialu}} {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, na {{Code|true}}, a poza na {{Code|nil}}.
Funkcja jest przyszykowana jest dla jednego spisu treści, o ściśle określonym specjalnym napisie wprowadzenia tekstu, w danym spisie na stronie.
====== Iterator linii artykułu spis treści ======
Uruchamiamy iterator, używając funkcji lokalnej: {{LinkŚródtytuł|iteratorTekstuNaglowka}}, według wywołania:
<syntaxhighlight lang="lua">
local iterator=iteratorTekstuNaglowka();
</syntaxhighlight>
Ustawiamy zmienną: {{Code|wliczaj_artykuly_tego_rozdzialu}} {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, aby wliczał lub nie, pewne artykuły rozdziału według:
<syntaxhighlight lang="lua">
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
</syntaxhighlight>
Iterujemy otrzymanym ostatnio iteratorem, uzyskując kolejno zmienne: {{Code|przedrostek_listy}} {{LinkPatrz|przedrostek_listy}}, {{Code|tekstowy_przedrostek}} {{LinkPatrz|tekstowy_przedrostek}}, {{Code|linia}} {{LinkPatrz|linia}}, i {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}.
; Kiedy rozdziałów zerowych nie liczymy jako je{{dk}}
Dla rozdziałów, które nie sa poziomami z listą, sprawdzamy, czy to jest rozdział zerowy przy pomocy funkcji: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, i sprawdzamy, czy on przekracza rozmiar: {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}, jeżeli jest tym rozdziałem i nie przekracza pewnego rozmiaru, to to jest rozdział traktowany jako zerowy niepomijany rozdział zerowy, wtedy ustawiamy zmienną: {{Code|nie_pomijaj_tego_rozdzialu}} {{Patrz|nie_pomijaj_tego_rozdzialu}}, na {{Code|true}}.
; A jeśli to są rozdziały z listy zaczynające się od dwukropka w linii{{dk}}
Gdy taki rozdział nie pretenduje do zerowych, to sprawdzamy funkcją: {{Code|{{sr|#p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu|p=StronicowyParser/Rozdziały}}}}, czy ten rozdział pominąć, a jeżeli ona przyjmuje wartość odpowiadającej fałszywej, czyli {{Code|false}}, wtedy ustawiamy zmienną: {{Code|nie_pomijaj_tego_rozdzialu}} {{LinkPatrz|nie_pomijaj_tego_rozdzialu}}, na taką samą wartość jak poprzednio.
; Inne rozdziały{{dk}}
Dla rozdziałów innych ta wartość przyjmuje postać {{Code|false}}.
; Rozdziały jednak nie pomijane{{dk}}
Ustalamy wartość {{Code|ile}} {{Patrz|ile}}, na wartość zero.
Dla rozdziałów, które nie są pomijane, wtedy zmienna: {{Code|nie_pomijaj_tego_rozdzialu}} {{LinkPatrz|nie_pomijaj_tego_rozdzialu}}, przyjmuje wartość {{Code|true}}, w takim przypadku wchodzimy do funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami|p=Szablonowe}}}}, wtedy dla linków szablonowych sprawdzamy, czy to są linki określone tablicami: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy}}, {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}} lub ewentualnie funkcją: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}.
Wtedy jeżeli jest to link, to ikrementujemy: {{Code|ile}} {{LinkPatrz|ile}}.
Innym sposobem sprawdzania, czy to jest szablon linkowy jest tablica: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_kompletowania_stron_woluminu}}, lub {{Code|{{sr|#p.szablony_licencji|p=StroncowyParser/obiekty}}}} {{LinkPatrz|p.szablony_licencji}}.
Wtedy jest zwracane to:
<syntaxhighlight lang="lua">
return czy_szablon,obiekt,kod;
</syntaxhighlight>
Jeżeli to jest szablon linków, wtedy jest zwracana wartość: {{Code|return true,obiekt,kod}}, w przeciwnym wypadku:
<syntaxhighlight lang="lua">
return false,obiekt,kod;
</syntaxhighlight>
Innym sposobem liczenia, czy to jest link, to wtedy może być to link normalny: {{Code|LINKW}}, który można sprawdzić funkcją: {{Code|{{sr|#p["CzyLinkWewnętrzny"]|p=Specjalne}}}}, wtedy jest zwracane {{Patrz|gołe linki}}:
<syntaxhighlight lang="lua">
return true,obiekt,kod;
</syntaxhighlight>
Link też może być zewnętrzny, wtedy to jest: {{Code|LINKZ}}, wtedy funkcja zwraca wartości {{LinkPatrz|gołe linki}}.
; Kiedy analizujemy artykuły rozdziału{{dk}}
Następnie dla linii: {{Code|linia_rozwazana}} {{LinkPatrz|linia_rozwazana}}, co na podstawie tego liczymy, czy daną linię nie uwzględnić, w obliczeniach według schematu:
<syntaxhighlight lang="lua">
local czy_linia_uwzgledniana=mw.ustring.match(linia_rozwazana,"^%s*%-%-+(.*)%-%-+%s*$");
local czy_linia=((not czy_linia_uwzgledniana)and(mw.ustring.match(linia_rozwazana,"^%s*[%-%+%=%~]+.*$")
or ((#przedrostek_listy==0)and((mw.ustring.match(linia_rozwazana,"!"))and(mw.ustring.match(linia_rozwazana,"[^!]%s*$"))))
or mw.ustring.match(linia_rozwazana,"^%s*<")) or nil);
</syntaxhighlight>
Co następnie jest ustawiana: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}} na wartość {{Code|false}}.
; Warunek analizowania artykułów rozdziałów{{dk}}
W obliczeniach raz uwzględniamy funkcję: {{LinkŚródtytuł|AnalizaLiniiObiekty}}, w ostatniej omawianej pętli, schematycznie:
<syntaxhighlight lang="lua">
if(not czy_linia)then AnalizaLiniiObiekty(linia_rozwazana);end;
</syntaxhighlight>
===== Dalsza część funkcji {{nobold|{{LinkPatrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} =====
Bierzemy zakodowany tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu-IterTekst}}, i po nim iterator: {{Code|iterator}} {{LinkPatrz|iterator-IterTekst}}, wtedy iterujemy po parametrach:
<syntaxhighlight lang="lua">
local parsuj_rozdzialami=nil; ---- ta zmienna służy na wypadek, gdy by nie była żadnych rozwazanych rozdziałów;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
---- za każdym razem jest uruchamiana funkcja: AnalizaRozdzialu, przy rozważanym rozdziale;
AnalizaRozdzialu(rozdzial_tab[1],rozdzial_tab[2],text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany);
---- oznacz zmienną: parsuj_rozdzialami, wartością; true, a póżniej jąnie inicjuj;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
</syntaxhighlight>
Parametry zwracane przez iterator: {{Code|iterator}} {{LinkPatrz|iterator-IterTekst}}:
{{OpisParametrów
| 1 = {{Code|rozdzial_tab}} {{Code|{{=}}}} {{Code|<nowiki>{ [1] = rozdzial, [2] = linia_rozdzialu, }</nowiki>}} | _1 = tabela składająca się z dwóch elementów:
| 2 = Pod elementy tabeli: | nagłówek2 = tak
| 3 = {{Code|rozdzial}} | _3 = Jak w: {{LinkPatrz|rozdzial}}.
| 4 = {{Code|linia_rozdzialu}} | _4 = Jak w: {{LinkPatrz|linia_rozdzialu}}.
| 5 = Inne parametry: | nagłówek5 = tak
| 6 = {{Code|text}} | _6 = Jak w: {{LinkPatrz|text}}.
| 7 = {{Code|poziom_rozdzialu}} | _7 =Jak w: {{LinkPatrz|poziom_rozdzialu}}.
| 8 = {{Code|poczatek_rozdzialu}} | _8 = Jak w: {{LinkPatrz|poczatek_rozdzialu}}.
| 9 = {{Code|numeracja}} | _9 = Jak w: {{LinkPatrz|numeracja}}.
| 10 = {{Code|czy_rozdzial_centrowany}} | _10 = Jak w: {{LinkPatrz|czy_rozdzial_centrowany}}.
}}
Gdy nie napotkano żadnego rozważanego rozdziału, wtedy: {{Code|parsuj_rozdzialami}}, przyjmuje wartość {{Code|nil}}, w takim razie uruchamiana jest funkcja:
<syntaxhighlight lang="lua">
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",nil,tekst_rozwiniety_calego_artykulu,nil,nil,nil,nil);
end;
</syntaxhighlight>
Funkcja zwraca parametry inaczej, gdy artykuł, do którego należy książka jest korzystana, a inaczej, jeśli nie. W takim razie możemy zwracać na dwa sposoby:
<syntaxhighlight lang="lua">
if(czy_artykul_korzystany)then
return tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci;
else
return tabela_artykulow,nil,przekierowanie_spisu_tresci;
end;
</syntaxhighlight>
Przy artykułach korzystanych, co jest określone zmienną: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, tabelę: {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, przy jego spisach treści w książkach, do której należy ten artykuł, zwracana jest jako wartość przeważnie jako nierówna {{Code|nil}}, a dla artykułów z innych książkach, ta wartość już jest taka, tzn. przyjmuje wartość {{Code|nil}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pui9a8drd00gm3gvqbrp8q8nrjcq21f
560310
560309
2026-10-29T15:51:38Z
Persino
2851
/* Definicja tablicy: {{Code|tab_stare}}, inicjowanie jej elementów w różnych przypadkach */
560310
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/SpisTreści}}|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 lokalne ==
=== {{Śródtytuł|Ile}}{{Code|Ile}} ===
Funkcja liczy liczbę elementów we wszystkich podtabelach tabeli {{Code|tabela_rozdzial_artykulow2}} {{Patrz|tabela_rozdzial_artykulow2}}, licząc od drugiej tabeli, po pierwszej tabeli mieści się podtabela z informacjami o rozdziale, w której znajdują się artykuły określone dalszymi podtabelami.
Tymi podtabelami są od {{Code|2}} do {{Code|7}}, czyli {{Code|6}} tabelek, w których są artykuły, które zaliczamy do kategorii wliczane, tzn. one nie znajdują się w takich rozdziałach {{ZobaczTeż|przetłumaczone rozdziały}} przetłumaczonych na małą literę, ale przedtem na niego była działana funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, usuwając z nich odstępy na końcach, w tym dolne myślniki, a wewnątrz zamieniając kolejne dolne myślniki i spacje na jedną spację.
Metafunkcja, w metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, w: {{Code|{{ld2|Parametry}}}}, aby porównać to z tablicą {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}}, by zaliczyć je do tego typu:
<syntaxhighlight lang="lua">
p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu={
["licencja"]=true,
["inne"]=true,
["bibliografia"]=true,
["zobacz też"]=true,
["linki zewnętrzne"]=true,
};
</syntaxhighlight>
Musimy wykorzystać tak przetłumaczone rozdziały {{LinkZobaczTeż|przetłumaczone rozdziały}}, przy pomocy tej metatabelki, czy one zgadzają się z tą tablicą.
Te rozdziały należą do kategorii rozdziałów, w których artykuły są pomijane przez: '''{{ld|StronicowyParser|Stronicowy parser}}''', ale jeżeli one należą do rozdziału spisu treści lub rzeczy, to tam jednak nie są takie, inaczej jest poza.
A od: {{Code|7}} do {{Code|13}}, znajdują się podtabele z artykułami, które już należą już tam, czyli wtedy te drugie {{Code|6}} tabel.
A ta powyższa tabela mieści się: {{Code|{{ld2|StronicowyParser/obiekty}}}}, a jego opis w: {{Code|{{sr|#p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu|p=StronicowyParser/obiekty}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|numer_rodzaju_artykulu}} | _1 = Numer podtabeli elementtu, do którego wsadzamy element.
| 2 = {{Code|tabela_rozdzial_artykulow2}} | _2 = Tabela wraz podtabelami, od {{Code|1}} do {{Code|13}}, ale liczenie jest od {{Code|2}}.
}}
=== {{Śródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}{{Code|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}} ===
==== Opis pobieżny funkcji ====
Funkcja do wstawiania elementów z ogólnej tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, za pomocą funkcji wstawianej jako parametr: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{Patrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, do odpowiedniej pozycji artykularnej od: {{Code|2}} do {{Code|13}}, a pozycja {{Code|1}}, to pozycja rozdziałowa, ona jest określana przez zmienną: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{Patrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, a pozycja, którą wsadzamy to: {{Code|tab_stare}} {{Patrz|tab_stare}}.
Funkcja zwraca pozycje:
<syntaxhighlight lang="lua">
return numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych;
</syntaxhighlight>
Opis tych parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|numer_rodzaju_artykulu_poprz}} {{Patrz|numer_rodzaju_artykulu_poprz}} | _1 = Jest to wartość zwrócona przez funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}}, w odróżnieniu od: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, jest mniejszy o jeden, czyli wtedy to była a poziomie przypisywania wartość {{Code|numer_rodzaju_artykulu}} {{Patrz|numer_rodzaju_artykulu}},
| 2 = {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{Patrz|tab_pozycja_elementow_w_spisie_rzeczy}} | _2 = Pierwsza artykularna zmienna zwrócona przez funkcję {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}.
| 3 = {{Code|tablica_artykulow_zebranych}} {{Patrz|tablica_artykulow_zebranych}} | _3 = Tablica do sprawdzania, czy artykuł z nagłówkiem, ma powtórzenie tego bez nagłówka, czyli dla tego bez tego jest inna numeracja niż z nagłówkiem, a gdy niema tego bez, to wtedy dzięki tej funkcji numeracja tak się zachowuje, jak tam by był ten element, co prawda jest tam dodawany, ale jako z informacją taką, że bz numeru ustalanym przez funkcję: {{LinkŚródtytuł|Ile}}, A przy okazji, aby tego elementu nie dodawać ponownie, to w nim jest ustalana druga zmienna na {{Code|1}}, a wcześniej była na {{Code|0}}, i dlatego ona była wtedy dodawana, a później już tak nie jest.
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY,tabela_rozdzial_artykulow2,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]])...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|self}} {{Patrz|self}} | _1 = Zmienna obiektowa funkcji, z pominięciem, której funkcję można napisać zamiast {{Code|p.}} {{Patrz|p.}} jako {{Code|p:}} {{Patrz|p:}}.
| 2 = {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} | _2 = Opis jest jak w: {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
</syntaxhighlight>
Funkcja jest wywoływana w:
<syntaxhighlight lang="lua">
numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana),tabela_rozdzial_artykulow,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow);
</syntaxhighlight>
Gdzie funkcja: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, to jest: {{LinkŚródtytuł|WsadzanieParametryDoTablicy}}.
| 3 = {{Code|tabela_rozdzial_artykulow2}} | _3 = Ta tabela działa według opisu jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}}.
| 4 = {{Code|tablica_artykulow_zebranych}} | _4 = Diała jak w: {{LinkPatrz|tablica_artykulow_zebranych}}.
| 5 = {{Code|wliczaj_artykuly_tego_rozdzialu}} {{Patrz|wliczaj_artykuly_tego_rozdzialu}} | _5 = Jak przybiera odpowiadającą wartość fałszywą, to do: {{LinkPatrz|numer_rodzaju_artykulu}}, dodawane jest {{Code|6}}.
| 6 = {{Code|szablon}} {{Patrz|szablon}} | _6 = Jest to tekst zakodowany całego linku wewnętrznego, czy zewnętrznego, czy linku inteligentnego w postaci szablonu.
| 7 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - | _7 = Kolejno to jest: '''nazwa przestrzeni nazw''', '''nazwa przestrzeni książki''' i '''nazwa książki'''.
| 8 = {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} | _8 = Jest to nazwa artykułu danego spisu treści.
| 9 = {{Code|pelna_nazwa_spisu_tresci}} {{Patrz|pelna_nazwa_spisu_tresci}} | _9 = Uchwyt do bazy kodowania tekstu strony spisu treści.
| 10 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} | _10 = Nazwa strony szablonowa, jak są wywoływane w postaci szablonowej, gdzie są rozwijane adresy względne stron, poczytaj: {{lr2|Moduły/StronicowyParser/Rozdziały}} {{Patrz|Moduły/StronicowyParser/Rozdziały}}.
| 11 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _11 = Uchwyt do tablicy bazy kodowania zapisany w samej bazie dla danego artykułu, używany zamiast:{{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 12 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _12 = Tablica bazy zapisana w postaci osobnej tablicy, a nie jej w wewnętrznej bazie, nie jak to było w postaci zmiennej {{LinkPatrz|nazwa_modulu}}, używana zamiast: {{LinkPatrz|nazwa_modulu}}.
| 13 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _13 = Tablica rozłożeń zmiennej {{Code|szablon}}, dla zmiennych szablonowych, i dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}.
| 14 = {{Code|obiekt}} {{Patrz|obiekt}} i {{Code|kod}} {{Patrz|kod}} | _14 = Obiekt i kod, czyli: zmienne charakteryzujące zmienną wnętrza: {{Code|szablon}} {{LinkPatrz|szablon}}.
| 15 = {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} | _15 = Tablica przekierować, aby nie rozpatrywać tego samego przekierowania wiele razy.
| 16 = {{Code|przedrostek_listy}} {{Patrz|przedrostek_listy}} | _16 = Tekstowy przedrostek listy z przedziału znaków: {{Code|<nowiki>[;%*:#]+</nowiki>}} {{Patrz|wzor_do_linii_z_lista}}, rozpoczynających pojedyncza linię.
| 17 = {{Code|tekstowy_przedrostek}} {{Patrz|tekstowy_przedrostek}} | _17 = Numeracja rozdziału, z jakim rozpoczyna się rozdział.
| 18 = {{Code|w_rozdziale}} {{Patrz|w_rozdziale}}} | _18 = Gdy link znajduje się w rozdziale dodatnim.
| 19 = {{Code|linia_artykokow}} {{Patrz|linia_artykokow}} | _19 = Cała linia z artykułem lub artykułami, tą linią równie dobrze może być rozdział, tu chodzi o rozdział dodatni.
}}
==== Opis pobieżny funkcji {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} ====
Przedstawiamy tutaj funkcję: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, która jest opisana w punkcie: {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
Definicja funkcji w nagłówku:
<syntaxhighlight lang="lua">
__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tabela_rozdzial_artykulow2}} | _1 = Jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}},
| 2 = {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} | _2 = Jak w: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}},
| 3 = {{Code|tab_stare}} | _3 = Jak w: {{LinkPatrz|tab_stare}}.
}}
Ta funkcja została opisana już wcześniej.
==== Szczegółowy opis funkcji głównej ====
Uruchamiamy funkcję {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, która jest zdefiniowana w module: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}.
Wywołujemy tę funkcję:
<syntaxhighlight lang="lua">
local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nil,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych);
</syntaxhighlight>
Pierwszy zwracanym elementem: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, jest to zmienna tablicowa, która opisuje parametry artykularno-linkowe, drugi: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, do której kategorii należy dany artykuł w linku, a trzeci parametr, to: {{Code|id}} {{Patrz|id}}, to zbierane są parametry linkowe z szablonu {{s|SpisTreści}}, czwarty to: {{Code|parametry_szablonu}} {{Patrz|parametry_szablonu}}, w przypadku szablonów inteligentnych linków, to są parametry wywołań tych szablonów, ostatni parametr to: {{Code|kom}} {{Patrz|kom}}, przedstawia on, jeśli {{Code|false}}, to artykuł zakwalifikowany został poprawnie do rozważań, a {{Code|true}} już nie.
To {{LinkPatrz|parametry szablonu}}, to jest tablica z trzech elementów, tzn.:
<syntaxhighlight lang="lua">
local parametry szablonu={tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,};
</syntaxhighlight>
Elementy tablicy:
{{OpisParametrów
| 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Tablica parametrów uzyskanych z argumentów, i ich wartości, nazwanych i nienazwanych.
| 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _2 = To jest nazwa uzyskanego szablonu linków inteligentnych lub nie.
| 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} | _3 = Tabela modyfikatorów rozkładanego szablonu.
}}
Jeśli parametr: {{Code|numer_rodzaju_artykulu}} {{LinkPatrz|numer_rodzaju_artykulu}}, istnieje, to tworzona jest z niego taka sama wersja lub przy nieistnieniu parametru {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, do niego jest dodawana jest liczba {{Code|6}}. W ten sposób możemy zbierać artykuły książki i inne, które należą do pewnych rozdziałów i które nie należą.
===== {{Śródtytuł|ParametrPierwszy}}{{Code|ParametrPierwszy}} =====
Funkcja zbierające dane z {{Code|tab_artykul}} {{Patrz|tab_artykul}}, którego to jest czteroelementowa tablica, dotycząca danego artykułu. Drugim parametrem: {{Code|czy_niedozwolone}} {{Patrz|czy_niedozwolone}}, jest zmienna logiczna mówiąca, czy wskazać w nazwie artykułu, czy są dozwolone znaki, jest to sprawdzenie według wyrażenia regularnego: {{Code|<nowiki>[|<>{}%[%]]</nowiki>}} {{Patrz|wzor_znaki_niedozwolone}} na podstawie funkcji {{LzLua|mw.ustring.match}}, czyli: {{Code|znaki_niedozwolone}} {{Patrz|znaki_niedozwolone}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
ParametrPierwszy(tab_artykul,czy_niedozwolone)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|tab_artykul}} | _1 = Jak w: {{LinkPatrz|tab_artykul}}.
| 2 = {{Code|czy_niedozwolone}} | _2 = Jak w: {{LinkPatrz|czy_niedozwolone}}.
}}
Gdzie: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul}}, który jest pierwszym parametrem przyjmowanym przez funkcję, jest zdefiniowany jako czteroelementowa tablica, którą przypisujemy do czterem osobnych parametrów:
<syntaxhighlight lang="lua">
local artykul=tab_artykul[1];
local parametry=tab_artykul[2];
local naglowek=tab_artykul[3];
local tablica_przekierowania=tab_artykul[4];
</syntaxhighlight>
Jeżeli, któreś z parametrów z: {{LinkPatrz|tab_artykul}}, tzn. element jego {{Code|2}}-gi i {{Code|3}}-ci, istnieje, to układana jest trzyelementowa tablica z elementów od {{Code|1}} do {{Code|3}}, z dodatkowym elementem: {{Code|<nowiki>["LINK"] = true</nowiki>}}, a element czwarty to jest: {{Code|tablica_przekierowania}} {{Patrz|tablica_przekierowania}}, a jeżeli te dwa elementy, nie licząc czwartego, wcale nie istnieją, wtedy jest tworzony łańcuch znakowy z tego pierwszego elementu. Tak tworzymy, nową wersję tablicy: {{Code|tab_artykul}} {{Patrz|tab_artykul-nowa wersja}}, lub łańcuch znakowy, w postaci:
<syntaxhighlight lang="lua">
tab_artykul=((artykul)and(parametry or naglowek))and{[1]=artykul,[2]=parametry,[3]=naglowek,["LINK"]=true,} or artykul;
</syntaxhighlight>
Funkcja zwraca trzy parametry, tzn. parametry: {{LinkPatrz|tab_artykul-nowa wersja}}, {{LinkPatrz|znaki_niedozwolone}} i tablicę przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, co skrótowo piszemy: {{Patrz|zwracane-ParametrPierwszy}}:
<syntaxhighlight lang="lua">
return tab_artykul,znaki_niedozwolone,tablica_przekierowania;
</syntaxhighlight>
===== Rozwijanie nazwy linku artykułu =====
Do rozwijania nazwy linku służy funkcja: {{Code|{{sr|#p.DekodowanieTekstuNazwLinku|p=StronicowyParser/Pomocne}}}} {{Patrz|p.DekodowanieTekstuNazwLinku}}, pod względem szablonowym i nie tylko.
Funkcja rozwija tą nazwę tym: {{LzLua|frame:preprocess}}, jedynie nie rozwija szablonów stronicowego parsera, podane podkategoriach w kategorii: {{Code|{{lk2|Szablony stronicowe}}}}, za pomocą odpowiednich metod, bo to by wywołało nieskończoną pętle, i dlatego takie szablony są zamieniane tylko na wywołania symboliczne.
==== Dalszy opis funkcji nadrzędnej przy istnieniu parametrów linkowych normalnych, czy szablonowych (linków inteligentnych) ====
===== Gdy: {{Code|numer_rodzaju_artykulu_poprz}} {{Code|{{=}}}} {{Code|1}} =====
Tworzony jest numerek: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{Patrz|numer_rodzaju_artykulu_w_podreczniku}}, który w stosunku do: {{LinkPatrz|numer_rodzaju_artykulu}}, jest większy o jeden, a schemat tej operacji:
<syntaxhighlight lang="lua">
local numer_rodzaju_artykulu_w_podreczniku=numer_rodzaju_artykulu+1;
</syntaxhighlight>
====== Tworzenie tablicy: {{nobold|{{Code|tablica_artykulow_zebranych}}}} ======
Opiszemy tutaj tablicę: {{Code|tablica_artykulow_zebranych}}, opisaną wstępnie w punkcie: {{LinkPatrz|tablica_artykulow_zebranych}}.
; Tablica{{dk}} {{nobold|{{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}}}, nie jest tablicą{{dk}}
Gdy element pierwszy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, nie jest tablicą, wtedy jedynie liczymy, czy ona ma znaki niedozwolone: {{Code|wzor_znaki_niedozwolone}} {{LinkPatrz|wzor_znaki_niedozwolone}}, a póżniej wiedząc ten element, który jest aktualną nazwą artykułu kiążki, tworzymy tabelę: {{ZobaczTeż|tablica_artykulow_zebranych-inicjacja}}:
<syntaxhighlight lang="lua">
tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
</syntaxhighlight>
; Gdy element{{dk}} {{nobold|{{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}}}, jest łańcuchem znaków{{dk}}
Wpierw liczone są parametry z wywołania, z opcją, czy ma liczyć, czy nazwa artykułu ma znaki niedozwolone, z funkcji: {{LinkŚródtytuł|ParametrPierwszy}}:
<syntaxhighlight lang="lua">
tab_pozycja_elementow_w_spisie_rzeczy[1],znaki_niedozwolone,tablica_przekierowania=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],true);
</syntaxhighlight>
; Inna książka - atrybut, tzn. czy artykuł wychodzi poza daną książkę, lub jego przekierowanie w niej kieruje na stronę poza nią{{dk}}
Dalej sprawdzane jest, czy książka przyjmuje atrybut, tzn.: '''czy inna książka''', wtedy liczymy to z kodu z tablicy przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, jeżeli jej wartość istnieje, tzn.: {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}}:
<syntaxhighlight lang="lua">
local czy_inna_ksiazka=tablica_przekierowania and tablica_przekierowania[1] and tablica_przekierowania[1][5] or nil;
</syntaxhighlight>
; Tablica przekierowania artykułu względem bieżącej książki{{dk}}
Element: {{Code|<nowiki>[1][5]</nowiki>}}, to jest element tablicy: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, który przedstawia, czy to jest artykuł bieżącej książki, którego przekierowanie kieruje, wtedy ten parametr ma wartość {{Code|true}}, a gdy adres przekierowania wskazuje na inną książkę, wtedy {{Code|false}}. Jeśli ten parametr ma wartość fałszywą, wtedy jest sprawdzane, czy jest tablicą w: {{Code|czy_tablica}} {{Patrz|czy_tablica}}, według:
<syntaxhighlight lang="lua">
czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
</syntaxhighlight>
Lub w przeciwnym wypadku liczymy parametry artykularne z tablicy przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, a jeżeli parametry lub nagłówek przekierowania, w tej tablicy, istnieje, wtedy parametr: {{Code|czy_tablica}} {{LinkPatrz|czy_tablica}}, przyjmuje wartość {{Code|true}}, w przeciwnym wypadku wartość fałszywą.
Gdy ten element nie jest tablicą, to tworzona jest nazwa pełna artykułu: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}} i umieszczana w tablicy: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, w sposób, co dalej jest tworzona w dalszych operacjach tablica: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, z podobną tablicą początkową jak w poprzednim przypadku jego tworzenia, czyli jak w: {{LinkZobaczTeż|tablica_artykulow_zebranych-inicjacja}}.
; Tablica zebranych artykułów i porównywanie artykułu z nagłówkiem, czy istnieje wcześniejszy artykuł bez niego{{dk}}
Gdy element jest jednak tablicą, też jest liczona pełna nazwa artykułu (gdy nazwa artykułu przekierowania istnieje, wtedy ona jest liczona z: {{Code|tablica_przekierowania[2]}}, w przeciwnym wypadku, jeśli element: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}, jest tablicą, wtedy liczymy ją z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1][1]}}, w innym wypadku z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy[1]}}), a z niej liczymy tablicę: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, jak w: {{LinkZobaczTeż|tablica_artykulow_zebranych-inicjacja}}, w przypadku pierwszego artykułu nienagłówkowego.
A w przypadku pierwszego artykułu, który może być tylko z nagłówkiem, bo tego bez, w spisie, artykuł poprzedni nie istnieje, a więc tego tam nie ma tam w takim przypadku.
Gdy funkcja napotkała artykuł o takim samym stronie, co poprzednio, to do wartości początkowej, bez definiowania jeszcze raz tej samej tablicy, jest ustawiane odpowiednio:
<syntaxhighlight lang="lua">
tablica_artykulow_zebranych[3]=true;
</syntaxhighlight>
Co informuje, że artykuł jest ten sam, tylko inny nagłówek niż poprzedni, a poprzedni pierwszy jest bez niego.
====== Rozwijanie nazwy linku ======
Kompletowany jest drugi element tablicy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, rozwijając szablony w nim względem funkcji: {{LinkPatrz|p.DekodowanieTekstuNazwLinku}}. Dalej z tej nazwy są usuwane znaki specjalne według funkcji: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, z modułu: {{Code|{{ld2|Specjalne}}}}. Następnie działamy funkcją: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}, które końcowe spacje usuwa, a wewnętrz powtarzające zamienia kolejne na jedną spację.
====== Dodawanie do tablicy problemów, jeśli nastąpił problem ze znakami niedozwolonymi ======
A między czasie, gdy mamy niedozwolone znaki: {{Code|znaki_niedozwolone}} {{LinkPatrz|znaki_niedozwolone}}, za pomocą funkcji pytającej sprawdzamy, czy element inny zgłoszeniowy został dodany do tablicy problemów: {{Code|{{sr|#p.CzyJestTakiProblemowyElement|p=StronicowyParser/Problemy}}}}, aż w końcu dodajemy ten problem, jeśli go nie ma przy pomocy funkcji: {{Code|{{sr|#p.UstawTakiProblemowyElement|p=StronicowyParser/Problemy}}}}.
====== {{Śródtytuł|inicjacja_i_kompletowanie_zmiennych}}Ustalanie nazwy jednostki, kompletowanie linii artykułów i inicjowanie pozycji, w tabeli zebranych elementów, w tabeli zebranych elementów ======
Ustalamy nazwę jednostki z funkcji: {{Code|{{sr|#p.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem|p=StronicowyParser/Potrzebne}}}}, i inicjujemy tą wartością, czyli: {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}, wartość starą: {{Code|stara_nazwa_jednostki}} {{Patrz|stara_nazwa_jednostki}}, według:
<syntaxhighlight lang="lua">
---- Piszanie pełnej nazwy jednostki bez parametrów i nagłówka;
local nazwa_jednostki=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
---- Inicjowanie starej wartości tą policzoną;
local stara_nazwa_jednostki=nazwa_jednostki;
</syntaxhighlight>
Dalej {{Śródtekst|uchwyt=tabela_rozdzial_artykulow2|tekst=inicjujemy pozycję, jeżeli nie istnieje taka, na podstawie policzonej wartości: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, w tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}}}, według:
<syntaxhighlight lang="lua">
if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku])then tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku]={};end;
</syntaxhighlight>
Co {{Śródtekst|uchwyt=linia_artykokow|tekst=dalej linię artykułów {{Code|linia_artykokow}} {{LinkPatrz|linia_artykokow}}, kompletujemy, funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, z modułu: {{Code|{{ld2|Szablonowe}}}}, znając tablicę: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}}}, według:
<syntaxhighlight lang="lua">
linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
</syntaxhighlight>
====== Uwzględnianie niepodanego elementu nienagłówkowego w tablicy zebranych parametrów ======
Gdy tablica przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, istnieje, wtedy sprawdzamy, czy zmienna logiczna: {{Code|czy_tablica}} {{LinkPatrz|czy_tablica}}, jest prawdą i czy: {{Code|stara_nazwa_jednostki}} {{LinkPatrz|stara_nazwa_jednostki}}, czy jest nie pusta, w takim razie jej element: {{Code|<nowiki>[2]</nowiki>}}, przydzielany jest do zmiennej: {{Code|przekierowanie}} {{Patrz|przekierowanie}}, czyli parametrów nazwy artykułu przekierowania.
Inicjujemy nową zmienną: {{Code|przekierowanie}} {{LinkPatrz|przekierowanie}}, z artykułu, parametrów i nagłówka, ale wpierw sprawdzamy, czy dwa ostatnie istnieją, według:
<syntaxhighlight lang="lua">
przekierowanie=przekierowanie and ((tablica_przekierowania[3] or tablica_przekierowania[4]) and {przekierowanie, tablica_przekierowania[3], tablica_przekierowania[4],["LINK"]=true,} or przekierowanie) or nil;
</syntaxhighlight>
Tworzony jest nowy element: {{Code|nazwa jednostki}} {{Patrz|nazwajednostki-nowy}}, z: {{LinkPatrz|nazwa jednostki}}, parametrów i nagłówka, według rysu:
<syntaxhighlight lang="lua">
nazwa_jednostki={nazwa_jednostki, tab_pozycja_elementow_w_spisie_rzeczy[1][2], tab_pozycja_elementow_w_spisie_rzeczy[1][3],["LINK"]=true,};
</syntaxhighlight>
Jeżeli parametr drugi: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, a trzeci jej jest: {{Code|false}}, wtedy kreujemy tablicę: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
Wsadzamy element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do zbioru: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, przy pomocy funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.
Następnie jej drugiemu elementowi: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, dawana jest wartość {{Code|1}}, aby nie dało się ponownie tworzyć i wsadzać element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycji: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, według funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}, odpowiedzialny za artykuł nienagłówkowy, którego nie ma w spisach treści książki, ale są one w wersji nagłówkowej.
Jeżeli tablica przekierowania: {{Code|tablica_przekierowania}} {{LinkPatrz|tablica_przekierowania}}, jednak nie istnieje, wtedy tak samo sprawdzamy, co poprzednio potem, ale po spełnieniu tych warunków robimy inną tablicą: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, i tę tablicę robimy podobnie, i inicjujemy te same elementy też podobnie.
====== Uwzględnianie pozycji podanej w tablicy zebranych elementów ======
Tworzymy zmienną: {{Code|ile_dodac_do_poziomu_artykulu}} {{Patrz|ile_dodac_do_poziomu_artykulu}}, z drugiego elementu tablicy: {{Code|tablica_artykulow_zebranych}} {{LinkPatrz|tablica_artykulow_zebranych}}, następnię tworzymy inną zmienną: {{Code|ile_dodac_do_poziomu_artykulu_lub_nil}} {{Patrz|ile_dodac_do_poziomu_artykulu_lub_nil}}, co uwidaczniamy wzorem:
<syntaxhighlight lang="lua">
local ile_dodac_do_poziomu_artykulu_lub_nil=((ile_dodac_do_poziomu_artykulu)and(ile_dodac_do_poziomu_artykulu>0))and ile_dodac_do_poziomu_artykulu or nil;
</syntaxhighlight>
Tą zmienną wykorzystamy do sformułowania: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
{{Śródtekst|tekst=Tworzymy zmienną: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, którą wsadzamy do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycji: {{Code|numer_rodzaju_artykulu_w_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulu_w_podreczniku}}, przy pomocy funkcji: {{Code|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}} {{LinkPatrz|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}.|uchwyt=__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}
===== Gdy: {{Code|numer_rodzaju_artykulu_poprz}} {{Code|>{{=}}}} {{Code|2}} =====
Będziemy tutaj operowali, gdy parametr drugi zwracany z funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, wskazuje na nie artykuł książki, zatem ten rozdział jest właśnie dla tego przypadku.
====== Odkodowanie i przygotowanie zmiennych artykułu linku, jej nazwy, także kodu języka i projektu ======
* Gdy pierwszy element tablicy: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, jest tabelką, wtedy do przetworzenia jego wykorzystujemy funkcję: {{LinkŚródtytuł|ParametrPierwszy}}.
* Dla drugiego takiego elementu z tego, co jest nazwą linku, wtedy gdy nazwa linku normalnego, czy szablonowego, jest zakodowana, to ją odkodujemy, którego każdy jego element kod odkodujemy według funkcji: {{LinkPatrz|p.DekodowanieTekstuNazwLinku}}, następnie z niej usuwamy znaki specjalne według: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, następnie usuwamy końcowe spacje i wewnątrz kolejne spacje zastępujemy jedną spacją, co robimy według: {{Code|{{sr|#p["Odstępy"]|p=Parametry}}}}.
* Dla trzeciego i czwartego takiego elementu, to jest kolejno kod języka i projektu, z: {{Code|tab_pozycja_elementow_w_spisie_rzeczy}} {{LinkPatrz|tab_pozycja_elementow_w_spisie_rzeczy}}, te elementy odkodujemy, następnie z nich usuwamy końcowe spacje, a wewnątrz kolejne spacje zastępujemy jedną, według tej samej funkcji, co powyżej.
====== Przygotowanie zmiennych, inicjowanie tablicy: {{Code|tab_stare}}, i wsadzanie jej do tablicy ogólnej: {{Code|tabela_rozdzial_artykulow2}} ======
Dalej {{PobierzŚródtekst|tabela_rozdzial_artykulow2}}, także co {{PobierzŚródtekst|linia_artykokow}}, co wszystko robimy podobnie jak w rozdziale: {{LinkŚródtytuł|inicjacja_i_kompletowanie_zmiennych}}.
{{PobierzŚródtekst|__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY}}
==== Definicja tablicy: {{Code|tab_stare}}, inicjowanie jej elementów w różnych przypadkach ====
Przedstawiamy tutaj ogólną definicję zmiennej: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, które określają ogólnie jaką jego wersję użyć w poszczególnych punktach funkcji: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}. Ta wersja jest jedynie sformułowana dla artykułów w rozdziale, a nie dla rozdziałów, bo w tablicy, do której jest ona wsadzana przyjmuje ona możliwy numerek od "2" do "13", a nie również "1". Jej wersja ogólna:
<syntaxhighlight lang="lua">
local tab_stare=
{
---- Początek elementów alternatywnych
{
---- Początek wersji dla artykułu
tab_pozycja_elementow_w_spisie_rzeczy[1], -- artykuł bez pełnej nazwy ksiązki, bez parametrów i nagłówka, bo ich nie posiadałna samym początku;
---- lub
{
tab_pozycja_elementow_w_spisie_rzeczy[1][1], -- artykuł bez pełnej nazwy książki, bez parametrów i nagłówka;
tab_pozycja_elementow_w_spisie_rzeczy[1][2], -- parametry artykułu, z którym on został wywołany w linku;
tab_pozycja_elementow_w_spisie_rzeczy[1][3], -- nagłówek strony, wstawiany po parametrach lub nazwie strony;
["LINK"]=true, -- zmienna świadcząca, że nazwa artykułu jest z parametrami i nagłówkiem;
},
---- Koniec wersji dla artykułu
tab_pozycja_elementow_w_spisie_rzeczy[2], -- nazwa linku artykułu normalnego, czy szablonowego;
---- Początek elementów alternatywnych dla przekierowania
---- Początek parametrów przekierowania
{
tablica_przekierowania[2], -- nazwa przekierowania artykułu;
tablica_przekierowania[3], -- parametry przekierowania artykułu;
tablica_przekierowania[4], -- nagłówek przekierowania artykułu;
["LINK"]=true, -- zmienna świadcząca, że nazwa przekierowania artykułu jest z parametrami i nagłówkiem;
},
---- lub
tablica_przekierowania[2], -- nazwa przekierowania artykułu;
---- Koniec parametrów przekierowania
tablica_przekierowania[1], -- tablica o definicji, którego przedstawienie:
{
nazwa_przestrzeni_strony_przekierowania, -- nazwa przestrzzeni nazw przekierowania artykułu;
nazwa_przestrzeni_ksiazki_strony_przekierowania, -- nazwa przestrzeni książki przekierowania artykułu;
nazwa_ksiazki_strony_przekierowania, -- nazwa książki orzekierowania artykułu;
true/false, -- true - gdy strona jest przekierowaniem, gdy strona główna jest taka, lub przekierowanie wskazuje na tą samą książkę, chociaż ono jest w innej;
true/false, -- true, gdy przekierowanie wskazuje na artykuł w taj samej książce, false, gdy nie;
czy_przekierowanie, -- (true/false): true - gdy strona, nie główna podręcznika, jest przekierowaniem, false - jak nie, to strona główna książki;
};
-- koniec przedstawienia;
---- lub
nil, -- dotycząca przekierowania artykułu, a tutaj strona nie ma przekierowania, więc: nil;
nil, -- dotycząca tablicy książki, na którą wskazuje przekierowanie, a tutaj nie ma tablicy, więc: nil;
---- Koniec elementów alternatywnych dla przekierowania
tab_pozycja_elementow_w_spisie_rzeczy[3], -- kod języka;
tab_pozycja_elementow_w_spisie_rzeczy[4], -- kod projektu;
tab_pozycja_elementow_w_spisie_rzeczy[5], -- adres artykułu bez przetworzenia w linku normalnym,czy szablonowym;
ile_dodac_do_poziomu_artykulu_lub_nil, -- parametr mający tylko wartości: 1, gdy do aktualnego poziomu musi być dodane jeden - ta wartość, tylko dotyczy artykułów należących do tej samej książki, lub: nil, gdy nic, czyli w pozostałych przypadkach;
tab_pozycja_elementow_w_spisie_rzeczy[6], -- "url", pozycja świadcząca, że to jest link zewnętrzny, a nil, gdy to jest normalny link;
},
---- lub
tab_pozycja_elementow_w_spisie_rzeczy[1], -- nazwa artykułu linku, która nie posiada, ani parametrów w sobie, a po nim nagłówka, lub bezpośrednio po nazwie;
---- lub
{
tab_pozycja_elementow_w_spisie_rzeczy[1][1], -- nazwa artykułu bez parametrów i nagłówka;
tab_pozycja_elementow_w_spisie_rzeczy[1][2], -- parametry artykułu, z którym on został wywołany w linku;
tab_pozycja_elementow_w_spisie_rzeczy[1][3], -- nagłówek strony, wstawiany po parametrach lub nazwie strony;
["LINK"]=true, -- zmienna świadcząca, że nazwa artykułu jest z parametrami i nagłówkiem;
},
---- Koniec elementów alternatywnych
{
#przedrostek_listy, -- poziom listy, w którym jest artykuł, dla artykułów w linii z listą, w innym wypadku dla artykułu znajdującego się w rozdziale dodatnim, czy ujemnym jest zero;
przedrostek_listy, -- przedrostek listy w postaci wzoru, który jest w nawiasie we wzorze do przechwytywaniem: "\n([;%*:#])", przeciwnie dla artykułów w rozdziale dodatnim ma wartość pustą;
tekstowy_przedrostek, -- numeracja dodatkowa w rozdziale dla artykułu, gdy nie ma takiej numeracji, bo nie da się jej wydzielić, to ma wartość pustą;
w_rozdziale, -- czy artykuł jest w rozdziale dodatnim normalnym, czy centrowanym znacznikowym lub szablonowym, wtedy "true", w przeciwnym wypadku: "false";
},
linia_artykokow, -- skompletowana linia z artykułem, dla którego jest pozycja: "tab_stare";
true/false, -- true, gdy nazwa artykułu pochodzi bezpośrednio od szablonu {{SpisTreści}}, a w przeciwnym wypadku ma wartość: false;
true/false, -- true, gdy artykuł pochodzi z tego samego podręcznika, przeciwnie: false;
---- Początek elementów alternaatywnych
Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2), -- który numer artykułu, w momencie wsadzenia do tabeli zbierania rozdziałów i w nich artykułów, nawet w rozdziale;
---- lub
nil, -- nil, wtedy gdy link jest tak sobie dodany, który nie należy do żadnego spisu, a po nim elementy jego z nagłówkiem natomiast należą;
---- Koniec elementów alternatywnych
};
</syntaxhighlight>
W powyższym: {{Tag|syntaxhighlight|parametry=lang="lua"}}, dla elementu: {{Code|<nowiki>---- lub</nowiki>}}, jest powiedziane, że są dostępne alternatywy, które są zawarte w tablicy, że wybieramy te, aby nie spowodować czysto podwójnej tablicy, aby każda tablica zawierały inne elementy, jak wiele, a nie jedną tablicę, jak i łańcuchy znaków, wartość nil, powoduje, że czy ma być taka tablica, ale nie podwójna, co to znaczy podowójna, tzn. tablica w sobie zawiera inną jedyną tablicę, a tak nie może być, a jak zawiera jedną tablicę, to musi posiadać inne nienilowe elementy.
== Funkcje tablicy transportu ==
=== {{Śródtytuł|p.AnalizaNapisuWprowadzeniaTekstu}}{{Code|p.AnalizaNapisuWprowadzeniaTekstu}} ===
Funkcja przyjmuje jako parametr nieskompletowaną i nieprzetworzony tekst napisu wprowadzenia tekstu. On kompletuje i przekształca go w odpowiedni sposób, aby otrzymać czysty tekst tytułu rozdziału.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|rozdzial}} | _1 = Ten tekst tytułu rozdziału, o którym mówimy.
| 2 = {{Code|pelna_nazwa_spisu_tresci}} | _2 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci}}
| 3 = {{Code|pelna_nazwa_spisu_tresci_szablonowa}} | _3 = Jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
}}
==== Obiekty typu {{nobold|{{Code|SZABLON}}}} ====
Funkcja korzysta z funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, funkcja ma zdefiniowaną pierwszą jej funkcję, która dla: {{Code|obiekt {{=}} "SZABLON"}}, używamy pierwsze dwie tabelę, te tabele:
Pierwsza, która służy do zamieniania szablonów na ich parametry, tutaj pierwsza, to jest tablica: {{Code|{{sr|#p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu={
["MDL:RozszerzonyLink"]=1,
["Kompletność"]="",
["Kompletność krótka"]="",
["Kompletność junior"]="",
["Książka"]="",
};
</syntaxhighlight>
Druga: {{Code|{{sr|#p.szablony_dozwolone_w_nazwach_linkowych|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_dozwolone_w_nazwach_linkowych}}, też służy do tego samego.
Funkcja wykorzystuje tablice szablonów korekt umieszczonych w nazwie linku, czy to normalnego, czy szablonowego (inteligentnego), którego definicja {{Patrz|p.szablony_dozwolone_w_nazwach_linkowych}}:
<syntaxhighlight lang="lua">
p.szablony_dozwolone_w_nazwach_linkowych={
["Korekta"] =2,
};
</syntaxhighlight>
===== Funkcje zawartości i dodatków, dla szablonów =====
One służą do zamieniania wywołań szablonowych na odpowiednie ich zawartości parametrów określone przez numery parametrów tych elementów w tych tabelach. Jeżeli przy którym wywołaniu przy wykorzystaniu kolejnych tych tabel przy użyciu funkcji: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}, nastąpiło zamienienie, to funkcja pierwsza w: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, zakańcza się z tą wartością. A jeżeli nie to uruchamia się funkcja dodatków: {{Code|{{sr|#p.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu|p=StronicowyParser/Rozdziały}}}}, a jeśli nastąpiło zastąpienie, to funkcja kompletowania się kończy z tą wartością.
===== Szablonowe linki =====
Dalej, jeżeli tak się nie stało, to uruchamia się funkcja parametrów, w którym wywołanie szablonowe jest rozkładane na nazwę szablonu, modyfikatory i parametry. Dalej jest sprawdzanie, czy jest to link inteligentny według funkcji: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, a gdy jest, to funkcja kończy swoje działania z nazwą tego linku lub jego adresem wewnętrznym, a jeśli on nie jest tym, to sprawdza, czy są inne szablonowe linki, które podejrzewa się, poprzez wywołanie funkcji: {{Code|{{sr|#p.NazwaInnegoSzablonowegoLinkowegoObiektu|p=StronicowyParser/Potrzebne}}}}, a jeżeli jest tym linkiem, to funkcja składania zwraca też jak poprzednio nazwę linku lub jego adres wewnętrzny. A gdy nie, to w innym przypadku sprawdzane, czy to jest inny link wewnętrzny generowany przez szablony, które sprawdza funkcja tutaj: {{Code|{{sr|#p.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli szablon jest tym linkiem, to funkcja składania zwraca jego nazwę linkową.
===== Szablony rozwijane przez {{lpg|JavaScript}} =====
A następnym krokiem jest sprawdzanie, czy nazwa szablonu jest jednych z elementów z tablicy: {{LinkPatrz|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}}, która ma ten element, te szablony wymienione w tej tablicy są po to, aby służyły do rozwijania przez JavaScript, są to elementy wikikodu, które są pracochłonne ze względu na ich skomplikowany kod, czy wikikod, nawet {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, i dlatego ich się nie rozwija przez stronicowy parser: {{Code|{{ld2|StronicowyParser}}}}, te nazwy szablonów są określone tablicą: {{Code|{{sr|#p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu={
["Cytuj"]=true,
["Cytuj stronę"]=true,
["Cytuj pismo"]=true,
["Cytuj odcinek"]=true,
["Cytuj książkę"]=true,
["Cytuj grę komputerową"]=true,
};
</syntaxhighlight>
I funkcja wtedy zwraca skompletowany szablon bez rozwijania jego, pod warunkiem, jeżeli jest tym szablonem o tej nazwę szablonu wywołującego.
===== Co jest zwracane w przypadku szablonów =====
Te powyżej elementy dla funkcji parametrów, w niej wartości są zwracane do niej, a jeżeli ona przyjmuje wartość nienilową, to do funkcji składania zwracana jest jego wartość, a przeciwnie jest zwracane pierwszy parametr szablonu do niej.
==== Obiekty typu: {{nobold|{{Code|NOWIKI}}}}, {{nobold|{{Code|PRE}}}} i {{nobold|{{Code|ŹRÓDŁO}}}} ====
A gdy dla elementów, jeśli nazwa obiektu jest: {{Code|obiekt {{=}} "NOWIKI"}}, {{Code|obiekt {{=}} "PRE"}}, lub: {{Code|obiekt {{=}} "ŹRÓDŁO"}}, znacznik jest rozkładany na czynniki pierwsze, a jeżeli nie ma zawartości, to przez funkcję składania jest zwracana wartość pusta, a jeśli nie, to pewne znaki specjalne tagu {{Tag|nowiki}}, które mają w nim być zamienione na tekst, są zamieniane na kody '''HTML''', co po tym, ta ona jest zwracana.
==== Obiekty typu: {{nobold|{{Code|MATH}}}}, {{nobold|{{Code|GALERIA}}}}, {{nobold|{{Code|MAPAOBRAZU}}}}, i {{nobold|{{Code|INNEPRE}}}} ====
A jeżeli wartość: {{Code|obiekt}}, jest nie równa: {{Code|MATH}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} lub {{Code|INNEPRE}}, wtedy zawartość zmiennej: {{Code|szablon}}, jest wykorzystana przez funkcję z modułu: {{Code|{{ld2|Specjalne}}}}, które w tej podanej zmiennej usuwa komentarze według: {{Code|{{sr|#p["UsuńKomentarze"]|p=Specjalne}}}}. Zamieniane są w nim linki zewnętrzne i wewnętrzne na ich nazwy lub adresy według: {{Code|{{sr|#p["ZamieńLinkiZewnętrzneNaTekst"]|p=Specjalne}}}} i {{Code|{{sr|#p["ZamieńLinkiWewnętrzneNaTekst"]|p=Specjalne}}}}. Są usuwane rozwinięte znaczniki szablonów stylów, używając do tego celu: {{Code|{{sr|#p["UsuńSzablonyStylów"]|p=Specjalne}}}}. To samo jest robione ze znacznikami na podstawie: {{Code|{{sr|#p["UsuńZnaczniki"]|p=Specjalne}}}}. Z tekstu szablonu są kasowane normalne kategorie nieszablonowe: {{Code|{{sr|#p["UsuńKategorie"]|p=Specjalne}}}}. Pozbywamy się, z zawartości, wywołań plików i interwiki, na podstawie: {{Code|{{sr|#p["UsuńWywołaniaPlików"]|p=Specjalne}}}} i {{Code|{{sr|#p["UsuńInterwiki"]|p=Specjalne}}}}. Dalej z tego obiektu są usuwane znaki specjalne na podstawie: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}.
A gdy mamy do czynienia z innymi znacznikami, to są zwracane zamiast nich wartości puste do funkcji kompletowania.
Dane, z funkcji kompletowania, które są zwracane do niej, są usuwane w niej znaki specjalne z całości tekstu rozdziału: {{Code|{{sr|#p["UsuńZnakiSpecjalne"]|p=Specjalne}}}}, i znaki białe z końców tekstu. Powtarzające się te znaki kolejne wewnątrz są zamieniane na jedną spację, to się dzieje według funkcji: {{Code|{{sr|#p["UsuńZbędneBiałeZnaki"]|p=Specjalne}}}}.
Cały taki wynik operacji robiony w funkcji w nagłówku jest zwracany do niej, to jest, co uzyskujemy, nazwą rozdziału w postaci przetworzonej.
=== {{Śródtytuł|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}{{Code|p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}} ===
Opisane tutaj są podfunkcje, z których korzysta ta funkcja, co one robią, do czego są wykorzystane.
==== Opis funkcji: {{nobold|{{Patrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} ====
Funkcja służy do zbierania nagłówków i z niej danych, tzn. linków normalnych i inteligentnych, a także są zbierane nagłówki z listy bez artykułów i do nich elementy podlisty z artykułami w postaci wywołań linkowych w niej. Tworzona jest specjalnie dla tego tablica: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, która w odpowiedni sposób po przekształceniach wsadzana jest do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}.
| 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{LinkPatrz|nazwa_ksiazki}}.
| 3 = {{Code|nazwa_spisu_tresci}} | _3 = Jak w: {{LinkPatrz|nazwa_spisu_tresci}}.
| 4 = {{Code|czy_artykul_korzystany}} {{Patrz|czy_artykul_korzystany}} | _4 = Czy dany spis treści dla książki dla jej artykułu korzystanego, dla innej książki, wtedy to artykuł niekorzystany.
| 5 = {{Code|adres_ksiazki_glownego_spisu_tresci}} {{Patrz|adres_ksiazki_glownego_spisu_tresci}} | _5 = Jest to wewnętrzny adres książki głównego spisu treści, jest to taki adres, na który wskazuje przekierowanie innej książki.
| 6 = {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{Patrz|__FUNKCJA_ZBIERANIA_DANYCH}} | _6 =
{{Śródtekst|uchwyt=__FUNKCJA_ZBIERANIA_DANYCH|tekst=
Jest to funkcja, która zbiera informacje o aktualnym artykule, która jest spisem treści, w postaci nieprzetworzonej przez funkcje z modułu: {{Code|{{ld2|StronicowyParser/Rozdziały}}}}, opisanego w: {{Code|{{sr|Rozdziały|StronicowyParser - Rozdziały|p=StronicowyParser}}}}, ta funkcja kopiuje, np. tabele danych bazy modułu: {{Code|{{m|Szablonowe}}}}, tzn: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, i tabelę rozkładu elementów w niej na czynniki pierwsze, tzn.: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, co jest napisane w module: {{Code|{{ld2|StronicowyParser/ZbieranieDanychStron}}}}, a w dokumentacji: {{Code|{{sr|#p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi|p=StronicowyParser/ZbieranieDanychStron}}}}.
{{P|Przykład wywołania:}}
<syntaxhighlight lang="lua">
__FUNKCJA_ZBIERANIA_DANYCH(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona);
</syntaxhighlight>
Funkcja nie zwraca niczego, jest funkcją, zwykłą bezwartościową procedurą, niezwracającą niczego.
}}
}}
==== Funkcje lokalne ====
Funkcja ma w sobie też definicję funkcji lokalnych zdefiniowanej w tej funkcji tutaj opisywanej.
===== {{Śródtytuł|FunkcjaIteratoraTekstuZakodowego}}{{Code|FunkcjaIteratoraTekstuZakodowego}} =====
Funkcja służy do pomijania tego, co nie jest linkiem wewnętrznym, czy zewnętrznym, czyli oznaczone kodami: {{Code|LINKW}} lub {{Code|LINKZ}}, czy nawet szablonem linku inteligentnego, czy innego służącego do generowania spisu treści, do tego celu również używa funkcji: {{LinkŚródtytuł|CzySzablonLinkLubLicencja}}, oraz tego co nie jest w liście określonym wzorem: {{Code|<nowiki>\n([#:*;]+)</nowiki>}}, z możliwym na początku tekstem, ale nie z kodami, w danej pozycji listy, lub co ewentualnie nie może być w możliwej liście, tzn.: {{Code|<nowiki>\n([#:*;]*)</nowiki>}}, ale wtedy musi tam być z tekstem, ale nie z kodami, na początku danej pozycji listy, nawet jeśli to nie jest lista, to też tak samo.
Jeżeli funkcja nie ma kodów linków wewnętrznych, czy to normalnych, czy szablonowych, to się zakańcza z wartością domyślną {{Code|nil}}, w przeciwnym wypadku do sprawdzenia używa do tego funkcji: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}}, do sprawdzania, czy to jest szablon linku, nawet licencji, a jeżeli ta funkcja zwraca wartość {{Code|true}}, to cała funkcja zwraca {{Code|nil}}. Jeżeli oba te sposoby nie dały rezultatu {{Code|true}}, to wtedy funkcja zwraca wartość pustą, czyli określonym ciągiem znakowym o szerokości zerowej.
Funkcja ma w sobie dwie definicje funkcji: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}} i {{LinkŚródtytuł|CzySzablonLinkLubLicencja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FunkcjaIteratoraTekstuZakodowego=function(szablon,obiekt,kod)...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}}.
}}
====== {{Śródtytuł|PomijajLinkiOrazLicencje}}{{Code|PomijajLinkiOrazLicencje}} ======
Funkcja służy do sprawdzania, czy są odpowiednie szablony w kodzie.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function PomijajLinkiOrazLicencje(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
Funkcja sprawdza, czy to są szablony spisu treści określone tablicą o kluczach, którymi są nazwy szablonów, z wartościami {{Code|true}}, czyli: {{Code|{{sr|#p.szablony_licencji|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_licencji}}:
<syntaxhighlight lang="lua">
p.szablony_licencji={
["Licencja"]=true,
};
</syntaxhighlight>
Tzn., czy to są szablony ozdobne woluminu, którego tablica: {{Code|{{sr|#p.szablony_ozdobne_stron_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_ozdobne_stron_woluminu}}, jest podobnie zbudowana, co poprzednia:
<syntaxhighlight lang="lua">
p.szablony_ozdobne_stron_woluminu={
["MDL:RozszerzonyLink"]=true,
};
</syntaxhighlight>
A jeżeli to są te szablony, to funkcja zwraca wartość {{Code|true}}.
Jeżeli jednak to nie są te szablony, należy użyć tablic, tak samo zbudowanej jak poprzednie, czyli: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.linki_szablony_elementy_spisu_rzeczy}}:
<syntaxhighlight lang="lua">
p.linki_szablony_elementy_spisu_rzeczy={
["SpisTreści"]=true,
["Sekcja referencyjna"]=true,
["Sr"]=true,
["Link wewnętrzny"]=true,
["Ly"]=true,
["LinkOgólne"]=true,
["Lo"]=true,
};
</syntaxhighlight>
Lub innej, inaczej zbudowanej niż poprzednie, ale ważne, że ma wartość niefałszywą, czyli taką tablicą: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{Patrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}, jest:
<syntaxhighlight lang="lua">
p.inne_linki_szablony_elementy_spisu_rzeczy={
["SpisPozycja"]={true,numer_link="tyt",},
["SpisZw"]={false,numer=1,link=2,},
};
</syntaxhighlight>
Jak są te nazwy szablonów określone ich kluczami tych tablic, to funkcja zwraca wartość {{Code|true}}. A jeżeli jednak nie, to funkcją: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}, jest sprawdzane, czy to jest link inteligentny, nawet przekierowanie, jeżeli link taki jest, to funkcja zwraca wartość w tym wypadku {{Code|true}}. W przeciwnym wypadku, jak nie zwrócił tej wartości, bo taka nie jest nazwa szablonu, to funkcja nic nie zwraca.
====== {{Śródtytuł|CzySzablonLinkLubLicencja}}{{Code|CzySzablonLinkLubLicencja}} ======
Funkcja sprawdzająca za pomocą: {{LinkŚródtytuł|PomijajLinkiOrazLicencje}}, na podstawie parsowania tekstu szablonu funkcją: {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}}, z parsowanym przechwytywanym typem obiektu: {{Code|obiekt}} {{LinkPatrz|obiekt}}, równym {{Code|SZABLON}}. A jeżeli funkcja ta wspomniana w tekście zwróci {{Code|true}}, to funkcja taki obiekt policzy.
Jeżeli liczba policzonych obiektów i znalezionych w wyniku parsowania jest większa od zera, to funkcja w nagłówku zwróci wartość {{Code|true}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local CzySzablonLinkLubLicencja=function(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
===== {{Śródtytuł|iteratorTekstuNaglowka}}{{Code|iteratorTekstuNaglowka}} =====
Jest to funkcja iteratora, którego funkcja zwracana (iterator) zwraca parametry, dla rozdziałów dodatnich i pozycji list.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function iteratorTekstuNaglowka()
... ---- Kod przed zwróceniem iteratora;
return function()
... ---- Ciało funkcji iteratora;
end;
end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = Brak parametrów. | komórka1 = tak
}}
Iterator (funkcja zwracana przez funkcję w nagłówku) zwraca parametry w wyniku kolejnych wywołań:
<syntaxhighlight lang="lua">
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,true/false;
</syntaxhighlight>
Parametry zwracane przez iterator:
{{OpisParametrów
| 1 = {{Code|przedrostek_listy}} | _1 = Przedrostek pozycji listy, dla rozdziałów dodatnich jest wartością pustą.
| 2 = {{Code|tekstowy_przedrostek}} | _2 = Numeracja pozycji w liście lub w nagłówku dodatnim.
| 3 = {{Code|wyzyskane_wywolanie_szablonu_spis_tresci}} | _3 = Jest to rozdział bez numeracji i przedrostka pozycji listy.
| 4 = {{Code|true/false}} | _4 = Wartość {{Code|true}} świadczy o rozdziale dodatnim, a w przypadku innym funkcja zwraca zawsze wartość tą {{Code|false}}, jako ostatni element zwracany.
}}
Funkcja jest przykowana na rozdziałów dodatnich i pozycji list oraz innych linii, dla tego pierwszego funkcja zwraca:
<syntaxhighlight lang="lua">
return "","",wartosc,true;
</syntaxhighlight>
Gdzie {{Code|wartość}} jest to zawartość napisu wprowadzenia tekstu (rozdziału dodatniego).
W przypadku list oraz innych niż rozdziały dodatnie samo wyrażenie regularne {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest okreslone przez wyrażenie:
<syntaxhighlight lang="lua">
local re="([#:*;]*)[^%S\n]*([%d%.]*[^%S\n]*[^\n]+)";
</syntaxhighlight>
Funkcja wykorzystuje funkcję: {{Code|{{sr|#p.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu|p=StronicowyParser/Rozdziały}}}}, aby zamienić zawartość pozycji listy na rozdział bez numeracji i numerację, i dlatego ta funkcja zwraca te dwie wartości. Gdy funkcja jak nie znajdzie więcej linii (wyszukań), to zwraca wartość {{Code|nil}} mówiąca o zakończeniu iteracji iteratora, tzn. dane dla iteratora się zakończyły.
===== {{Śródtytuł|LiniaArtykulow}}{{Code|LiniaArtykulow}} =====
Funkcja dla szablonów kompletowania określonym tabelką: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.szablony_kompletowania_stron_woluminu}}, o definicji:
<syntaxhighlight lang="lua">
p.szablony_kompletowania_stron_woluminu={
["Kompletność"]=true,
["Kompletność krótka"]=true,
["Kompletność junior"]=true,
["Książka"]=true,
};
</syntaxhighlight>
Rozdziela linię na wiele obsługiwanych podlinii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaArtykulow(linia)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} {{Patrz|linia}} | _1 = Pojedyncza przetworzona linia.
}}
====== {{Śródtytuł|SzablonAnalizujKompletnosc}}{{Code|SzablonAnalizujKompletnosc}} ======
Funkcja sprawdza, czy dane wywołania szablonu, ma swoją nazwę szablonu, która jest nazwą szablonu kompletowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function SzablonAnalizujKompletnosc(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} | _1 = Jak w: {{LinkPatrz|szablon}}.
}}
====== Dalszy opis funkcji ======
Możliwe są dwie opcje, szablon kompletowania jest pierwszy, a drugi drugi, lub odwrotnie. Funkcja obsługuje te oba przypadki. Ona stawia przecinek dla obu wersji ustawień, jeśli potraktować układem link i szablon kompletowania, to wstawiany jest on pomiędzy tymi układami, aby rozdzielić na kolejne podlinie, w liście bez tych znaków pozycji.
Dzielimy to na elementy przy pomocy funkcji: {{LzLua|mw.text.split}}, z opcją jako drugi parametr, aby uwzględniał wyrażenia regularne {{Code|false}}.
W tych rozdzielonych linią tą funkcją dzielącą ciąg znakowy na tabelę, kody '''HTML''' przecinka są zamieniane na zwykły przecinek.
Funkcja zwraca tabelę podzielonej linii na mniejsze podlinie, który można iterować funkcją: {{Code|pairs}} lub {{Code|ipairs}}.
===== {{Śródtytuł|WsadzanieParametryDoTablicy}}{{Code|WsadzanieParametryDoTablicy}} =====
Funkcja z parametrami, która uruchamiana jest inną w: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}, która wstawia tabelę: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, do ogólnej tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, ewentualnie do: {{Code|tabela_rozdzial_artykulow}} {{Patrz|tabela_rozdzial_artykulow}} na pozycję {{Code|numer_podtablicy_w_tablicy}} {{Patrz|numer_podtablicy_w_tablicy}}, a dokładniej na: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, w funkcji: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana)
return function(tabela_rozdzial_artykulow2,numer_podtablicy_w_tablicy,tab_stare)
... ---- ciało funkcji.
end;
end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|linia}} | _1 = Jak w: {{LinkPatrz|linia}}.
| 2 = {{Code|czy_linia_uwzgledniana}} {{Patrz|czy_linia_uwzgledniana}} | _2 = Czy linię ma uwzględnić w powiększaniu poziomu o jeden dla artykułu.
}}
Parametry zwracanej funkcji przez tę w nagłówku:
{{OpisParametrów
| 1 = {{Code|tabela_rozdzial_artykulow2}} | _1 = Jak w: {{LinkPatrz|tabela_rozdzial_artykulow2}}.
| 2 = {{Code|numer_podtablicy_w_tablicy}} | _2 = Jak w: {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}.
| 3 = {{Code|tab_stare}} | _3 = Jak w: {{LinkPatrz|tab_stare}}.
}}
====== {{Śródtytuł|CzyZaliczac}}{{Code|CzyZaliczac}} ======
Funkcja sprawdza, czy z początkiem linii pozycji listy, bez przedrostka listy, jest z możliwym początkiem z odstępami i po nim cudzysłowem, po którym następują liczby, litery, w takim przypadku linia nie może składać się z tego z początkiem z literami lub cyframi, czyli ze znakami alfanumerycznymi, a po nim ze znakami interpunkcyjnymi. Jeśli to sprawdzenie było pozytywne, funkcja zwraca wartość logiczną odpowiadającą {{Code|true}}, w przeciwnym wypadku jest zwracane {{Code|false}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CzyZaliczac()...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = Brak parametrów funkcji. | komórka1 = tak
}}
Funkcja zwraca informację, czy daną linię traktować jako rozdział, chodzi tu o pozycje list, a w przypadku rozdziałów dodatnich wiadomo, że one są właśnie, że rozdziałami.
====== Dalszy opis funkcji ======
Funkcja sprawdza w funkcji zwracanej, czy rozważany rozdział jest centrowany danego artykułu, który siedzi pod rozdziałem lub w samym rozdziale, sprawdza, czy artykuł jest w rozdziale, sprawdza, czy linia jest uwzględniana: {{Code|czy_linia_uwzgledniana}} {{LinkPatrz|czy_linia_uwzgledniana}}. Funkcja sprawdza, czy w sekcji, czy w: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, czy istnieje element: {{Code|tab_stare[2]}} {{Patrz|tab_stare[2]}}, i dalszy: {{Code|tab_stare[2][1]}} {{Patrz|tab_stare[2][1]}} - ten element jest to w: {{Code|tab_stare}}, taki: {{Code|#przedrostek_listy}} {{Patrz|#przedrostek_listy}}, a jeżeli to sprawdzenie przeszło pozytywnie, który dla tego jest poziomem listy, lub zerowego rozdziału lub rozdziału dodatniego. Wtedy do: {{Code|tab_stare[2][1]}} {{LinkPatrz|tab_stare[2][1]}} jest ikrementowany on o liczbę jeden, czyli:
Dla każdej linii zmienna: {{Code|nowa_linia}} {{Patrz|nowa_linia}}, przyjmuje wartość {{Code|false}}, wtedy dla przypadku przeciwnego, tzn. gdy mamy rozdział i uwzględniamy artykuły w jednej linii, którym jest rozdział będący pozycją listy, w zmiennej: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, jest ustawiany element: {{Code|tab_stare[2][4]}} {{Patrz|tab_stare[2][4]}}, czyli zmienna: {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}, zaczyna przyjmować wartość {{Code|true}}. Wsadzany jest wtedy do tablicy: {{Code|tabela_rozdzial_artykulow2}} {{LinkPatrz|tabela_rozdzial_artykulow2}}, na pozycję: {{Code|numer_podtablicy_w_tablicy}} {{LinkPatrz|numer_podtablicy_w_tablicy}}, czyli to jest też: {{Code|numer_rodzaju_artykulow_w_nie_podreczniku}} {{LinkPatrz|numer_rodzaju_artykulow_w_nie_podreczniku}}, element {{Code|tab_stare}} {{LinkPatrz|tab_stare}}.
Gdy: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}}, gdy jednak przyjmuje wartość {{Code|false}}, wtedy jeśli poziom rozdzialu istnieje lub przedrostek listy: {{Code|#przedrostek_listy}} {{LinkPatrz|#przedrostek_listy}}, jest większy od zera, i istnieje wiele artykułów w pozycji liście, wtedy: {{Code|ile>0}} (patrz na zmienną: {{Code|ile}} {{LinkPatrz|ile}}), lub funkcja: {{LinkŚródtytuł|CzyZaliczac}}, przyjmuje wartość odpowiadające prawdziwej, w taki przypadku zmiennej: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}}, przydzielamy wartość {{Code|true}}, by dalsze artykuły można było wsadzić, do tablicy z nowym rozdziałem. Powiększamy numer rozdziału o jeden, tzn.: {{Code|numer_rozdzialu_w_ksiazce}} {{Patrz|numer_rozdzialu_w_ksiazce}}, wtedy w zmiennej: {{Code|tabela_artykulow}} {{Patrz|tabela_artykulow}}, tabeli rozdziałów i w nich artykułów dla tej pozycji przydzielamy wartość równą tablicy pustej. Liczymy dla tego rozdział z artykułami, z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, czyli obliczamy napis rozdziału, wtedy do pierwszej pozycji tablicy utworzonej w: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, dla miejsca: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, czyli: {{Code|tabela_rozdzial_artykulow}} {{LinkPatrz|tabela_rozdzial_artykulow}}, piszemy:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{-#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,false,},linia,};
</syntaxhighlight>
Gdzie: {{Code|rozdzial_na_tekst}} {{Patrz|rozdzial_na_tekst}}, to policzony rozdział, a {{Code|-#przedrostek_listy}} {{Patrz|-#przedrostek_listy}} to poziom rozdziału ujemnego, i dlatego minus. A: {{Code|przedrostek_listy}}, to znaki początkowe z listy: {{Code|wzor_do_linii_z_lista}} {{LinkPatrz|wzor_do_linii_z_lista}}, a: {{Code|tekstowy_przedrostek}}, to numeracja tego rozdziału. Wartość {{Code|false}} to jest ze ten rozdział nie jest centrowany, a: {{Code|linia}} {{LinkPatrz|linia}}, to wyzyskana linia bez początku pozycji listy. Ustawiamy: {{Code|tab_stare[2][4]}} {{LinkPatrz|tab_stare[2][4]}}, na wartość {{Code|true}} i element: {{Code|tab_stare[6]}} {{Patrz|tab_stare[6]}}, ustawiamy na zero. Tworzymy tablicę pustą na pozycję: {{LinkPatrz|numer_podtablicy_w_tablicy}}, tablicy: {{Code|tabela_rozdzial_artykulow}} {{LinkPatrz|tabela_rozdzial_artykulow}}, i do tej tablicy dodajemy: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, za pomocą funkcji: {{LzLua|table.insert}}.
A jeżeli nie jest tworzony nowy rozdział z listy w tabeli: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, to na pozycję: {{Code|numer_podtablicy_w_tablicy}} {{LinkPatrz|numer_podtablicy_w_tablicy}}, jest dodawany element: {{Code|tab_stare}} {{LinkPatrz|tab_stare}}, również tak jest robione, gdy artykuły znajdują się w rozdziale dodatnim, tzn. równaniowej lub centrowanej, tzn. wtedy: {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}, przyjmuje wartość {{Code|true}}.
===== {{Śródtytuł|AnalizaLiniiObiekty}}{{Code|AnalizaLiniiObiekty}} =====
Za pomocą funkcji: {{LinkŚródtytuł|LiniaArtykulow}}, linia: {{Code|linia_rozwazana}} {{Patrz|linia_rozwazana}}, jest rozdzielana na wiele linii. To wiele linii w postaci tabeli, są iterowane od: {{Code|k {{=}} 1}}, do: {{Code|k {{=}} #tab_linia}}, gdzie: {{Code|#tab_linia}} {{Patrz|#tab_linia}}, jest to długość linii, tzn. liczba elementów numerowanych tablicy, tzn. od 1 do wzwyż aż do napotkania najbliższej przerwy lub końca. Wtedy dla pojedyńczej literacji mamy: {{Code|tab_linia[k]}} {{Patrz|tab_linia[k]}}.
Iterujemy po kodach dla linii: {{Code|tab_linia[k]}} {{LinkPatrz|tab_linia[k]}}, przy pomocy funkcji: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|p.IteratorSzablonowyZakodowanegoTekstu}}, iteratorem: {{Code|iterator2}} {{Patrz|iterator2}}.
Inicjujemy zmienną: {{Code|tab_nieobslugiwane {{=}} nil}}, następnie iterujemy: {{LinkPatrz|iterator2}}, uzyskując w każdej iteracji: {{Code|szablon}} {{LinkPatrz|szablon}}, {{Code|obiekt}} {{LinkPatrz|obiekt}}, i {{Code|kod}} {{LinkPatrz|kod}}.
Gdy mamy do czynienia: {{Code|SZABLON}}, lub: {{Code|LINKW}}, albo: {{Code|LINKZ}}, wtedy dla elementów tego pierwszego bierzemy tablicę: {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}}, dla elementu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}.
Jeżeli ten element: {{Code|tabela_spisu}}, istnieje, element pierwszy: {{Code|tabela_spisu[1]}}, jest równy wartości {{Code|true}}, wtedy mamy do czynienia z szablonem {{s|SpisPozycja}}. Jej element: {{Code|tabela_spisu["numer_link"]}}, istnieje i jest równy: {{Code|tyt}} {{Patrz|tyt}}. Iterujemy po kluczach i jego wartościach tego szablonu i sprawdzamy, który element jest równy właśnie tej wartości, a jeżeli jest taki, to dla elementów nie równych niemu, a właściwie w jego wartości iterujemy po kodach funkcją: {{LinkPatrz|p.IteratorSzablonowyZakodowanegoTekstu}}, dla tej wartości, w ten sposób zbieramy tablicę wielowymiarową najpierw po: {{Code|obiekt}} {{LinkPatrz|obiekt}}, później po: {{Code|kod}}, {{LinkPatrz|kod}}, którą nazwiemy: {{Code|tab_nieobslugiwane}} {{Patrz|tab_nieobslugiwane}}, którego każda jej wartość jest równa {{Code|true}}. Ta tablica mówi dla jakich elementów ma nie zbierać w tablicy elementów w głównej tablicy rozdziałów i jego artykułach.
Dla elementu {{Code|tyt}} {{LinkPatrz|tyt}} tablicy parametrów przedrostek listy {{Code|przedrostek_listy}} ustawiamy na pusty, i liczmy numerację {{Code|tekstowy_przedrostek}} i zmienną: {{Code|szablon}} {{LinkPatrz|szablon}}, i ustawiamy zmienną {{Code|przerwij}} {{Patrz|przerwij}} na {{Code|true}}, aby dla tego szablonu nie zbierać elementów w tablicy rozdziałów i jego artykułów.
W przypadku przeciwnym dla: {{Code|tabela_spisu}}, gdy ma wartość {{Code|false}}, wtedy mamy do czynienia z funkcją: {{s|SpisZw}}. Dla niej liczymy: {{Code|przedrostek_listy}}, którą ustawiamy na pustą wartość. A: {{Code|tekstowy_przedrostek}}, liczmy uzyskując parametr o kluczu: {{Code|tabela_spisu["numer"]}}, którym jest parametr o numerze: {{Code|1}}, i {{Code|szablon}} {{LinkPatrz|szablon}}, który liczmy z parametrów szablonu o kluczu {{Code|tabela_spisu["link"]}}, którym jest numer {{Code|2}}. Ustawiamy tutaj zmienną: {{Code|przerwij}} {{LinkPatrz|przerwij}}, na wartosć {{Code|true}}.
====== {{Śródtytuł|CzyObslugiwane}}{{Code|CzyObslugiwane}} ======
Funkcja sprawdzająca, które elementy są obsługiwane, jeśli istnieje tablica: {{Code|tab_nieobslugiwane}} {{LinkPatrz|tab_nieobslugiwane}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local CzyObslugiwane=function()...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = Brak parametrów. | komórka1 = tak
}}
====== Dalszy opis funkcji ======
; Uwzględnianie tablicy, reprezentujące artykuł w rozdziale, wstawiany do tablicy danego rozdziału{{dk}}
Sprawdzany jest warunek:
<syntaxhighlight lang="lua">
if((--[[wliczaj_artykuly_tego_rozdzialu]] true)and(not przerwij)and((not tab_nieobslugiwane)or(CzyObslugiwane())))then
</syntaxhighlight>
Jeśli to nie jest spełnione, to sprawdzamy {{ZobaczTeż|link_szablon}}, czy jest zebrana licencja z autorem według zmiennej: {{Code|licencja_z_autorem}} {{Patrz|licencja_z_autorem}}, i sprawdzamy, czy: {{Code|szablon}} {{LinkPatrz|szablon}}, jest wnetrzem szablonu, jeżeli tak, to ono przyjmuje wartość odpowiadająca prawdziwej, przeciwnie ma fałszywą.
Jeżeli jest on spełniony, wtedy wywołujemy funkcję: {{LinkŚródtytuł|WstawianieElementowychZarejestrowanychStronDoBazyWoluminu}}, później dla:
<syntaxhighlight lang="lua">
if((not czy_obslugiwane)and(not numer_rodzaju_artykulu_poprz))then
</syntaxhighlight>
Sprawdzamy, czy jest zrobione {{LinkZobaczTeż|link_szablon}}.
; Szablony licencji, i jego parametry, uwzględnianie jego tylko raz ca całą książkę, mieszcząca się w artykule głównej książki{{dk}}
Następnie dla warunku, który musi być spełniony:
<syntaxhighlight lang="lua">
if((not numer_rodzaju_artykulu_poprz)and(not przerwij)and(link_szablon)and((not tab_pozycja_elementow_w_spisie_rzeczy)or(not tab_pozycja_elementow_w_spisie_rzeczy[1]))and(czy_artykul_korzystany)and(licencja_z_autorem))then
</syntaxhighlight>
Sprawdzamy szablony licencji, takich jak: {{s|Licencja}}, według tablicy: {{Code|{{sr|#p.szablony_licencji|p=StronicowyParser/obiekty}}}}.
Dla parametrów szablonu, liczymy jego parametry o kluczach, tzn.: {{Code|Autor}} {{Patrz|Autor}}, {{Code|Ukończone szkoły}} {{Patrz|Ukończone szkoły}}, {{Code|Email}} {{Patrz|Email}}, {{Code|Dotyczy}} {{Patrz|DotyczyDotyczy}}, {{Code|Licencjonowanie}} {{Patrz|Licencjonowanie}}, {{Code|Umowa prawna}} {{Patrz|Umowa prawna}} i {{Code|Konsekwencje}} {{Patrz|Konsekwencje}}, którego wartości przydzielamy do odpowiednich zmiennych. Każdą z tych zmiennych kompletujemy funkcją: {{Code|{{sr|#p.DekodowanieTekstuDekodowanieTekstu|p=StronicowyParser/Potrzebne}}}}, poprzez zwracaną przez nią funkcję, w której jest wykorzystywana: {{LzLua|frame:preprocess}}, do rozwijania. A dla elementu istniejącego: {{Code|Autor}}, piszemy zmienną: {{Code|licencja_z_autorem}} {{LinkPatrz|licencja_z_autorem}}, któremu przydzielamy wartość {{Code|false}}, co spowoduje, że nie będziemy analizowali jeszcze raz innego szablonu licencji.
Te zmienne tego szablonu zbieramy natomiast w tablicy: {{Code|tabela_licencji_spisu_tresci}} {{Patrz|tabela_licencji_spisu_tresci}}, dane dotyczące licencji, więc:
<syntaxhighlight lang="lua">
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
</syntaxhighlight>
Co później przerywamy pętle po: {{Code|iterator2}} {{LinkPatrz|iterator2}}, instrukcją: {{Code|break}}.
==== Dalszy opis funkcji {{nobold|{{LinkPatrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} ====
Ściągamy tekst, tabelę bazy i tabelę parametrów strony o nazwie: {{Code|nazwa_modulu}}, przy pomocy funkcji: {{Code|{{sr|#p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony|p=StronicowyParser/Tekst}}}}, według:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=nil;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Uruchamiamy funkcję: {{Code|__FUNKCJA_ZBIERANIA_DANYCH}} {{LinkPatrz|__FUNKCJA_ZBIERANIA_DANYCH}}, jeżeli istnieje.
Dalej wywołujemy funkcję: {{Code|{{sr|#p.IterTekst|p=StronicowyParser/Rozdziały}}}}, w celu znalezienia tekstu: {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}}, i iteratora: {{Code|iterator}} {{Patrz|iterator}}, po napisach wprowadzenia tekstu rozdziałów i ich zawartości rozdziałów i na podstawie:
<syntaxhighlight lang="lua">
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,
__FUNKCJA, ---- funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość;
__FUNKCJA2, ---- funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału);
__FUNKCJA_ANALIZA_SPISU ---- funkcja do analizy i modyfikacji tekstu (może zwracać wartość: nil) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: IterTekst, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: SpisTreści, co jest uwidocznione w module: Moduł:StronicowyParser/SpisTreści;
);
</syntaxhighlight>
Opis parametrów zwracanych:
{{OpisParametrów
| 1 = {{Code|iterator}} {{Patrz|iterator-IterTekst}} | _1 = Iterator po rozdziałach i jego zawartościach.
| 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu-IterTekst}} | _2 = Tekst przetworzony rozdziału.
}}
Odczytujemy tabelę: {{LinkPatrz|p.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu}} i dalej: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}} {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, o definicji:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Robimy kopię tych tabel i przyłączamy do metatabeli: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}, przy pomocy funkcji: {{LzLua|setmetatable}}, aby nie odrózniać tych rozdziałów ze względu na wielkość liter i polskie znaki.
Inicjiujemy zmienną: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, wartością: {{Code|1}}, aby zbierać po kolei artykuły ze poszczególnego pojedynczego spisu treści.
Ustawiamy maksymalny rozmiar rozdziału zerowego na {{Code|50}}, w zmiennej: {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{Patrz|maksymalny_rozmiar_rozdzialu_zerowego}}, według:
<syntaxhighlight lang="lua">
local maksymalny_rozmiar_rozdzialu_zerowego=50;
</syntaxhighlight>
===== {{Śródtytuł|AnalizaRozdzialu}}{{Code|AnalizaRozdzialu}} =====
Jest to funkcja do zbierania danych z pojedynczego rozdziału o pewnej linii, inicjowana z jego parametrami, także tekstem rozdziału.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaRozdzialu(rozdzial,linia_rozdzialu,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany)...end;
</syntaxhighlight>
Parametry funkcji:
{{OpisParametrów
| 1 = {{Code|rozdzial}} {{Patrz|rozdzial}} | _1 = Jest to tekst rozdziału.
| 2 = {{Code|linia_rozdzialu}} {{Patrz|linia_rozdzialu}} | _2 = Jest to linia z rozdziałem.
| 3 = {{Code|text}} {{Patrz|text}} | _3 = Jest to tekst rozdziału o pewnym napisie wprowadzenia tekstu.
| 4 = {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}} | _4 = Jest to poziom danego rozdziału.
| 5 = {{Code|poczatek_rozdzialu}} {{Patrz|poczatek_rozdzialu}} | _5 = Początek pozycji listy rozdziałów '''mechanizmu {{NS|k=mw|l=tak|pk=d}}'''.
| 6 = {{Code|numeracja}} {{Patrz|numeracja}} | _6 = Numeracja rozdziału.
| 7 = {{Code|czy_rozdzial_centrowany}} {{Patrz|czy_rozdzial_centrowany}} | _7 = Czy dany rozdział jest centrowany.
}}
====== Tabela artykułów rozdziałów i w nich artykułów oraz jego poszczególnych ======
Tworzymy tabelę: {{Code|tabela_artykulow}} {{LinkPatrz|tabela_artykulow}}, jeżeli nie istnieje, z pustą tablicą, a później dla elementu: {{Code|numer_rozdzialu_w_ksiazce}} {{LinkPatrz|numer_rozdzialu_w_ksiazce}}, jeżeli też go nie ma, to też pustą tablicą. Dalej liczymy napis wprowadzenia tekstu rozdziału dodatniego funkcją: {{LinkŚródtytuł|p.AnalizaNapisuWprowadzeniaTekstu}} i uwzględniamy je w tabeli rozdziałów dla danego rozdziału pod wartością: {{Code|tabela_rozdzial_artykulow[1]}}, w sposób:
<syntaxhighlight lang="lua">
tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany,},rozdzial,};
</syntaxhighlight>
Dalej wprowadzamy zmienną: {{Code|czy_spis_rzeczy_napis_wprowadzenia_tekstu}} {{Patrz|czy_spis_rzeczy_napis_wprowadzenia_tekstu}}, mówiącą, że rozpatrujemy rozdziały i artykuły w ramach spisu treści o nagłówkach typu: {{Code|Spis treści}}, czy: {{Code|SPIS RZECZY}}. Jeżeli wyszliśmy poza to, to ta zmienna, wtedy przyjmuje wartość fałszywą, a definicja inicjacji tej zmiennej jest:
<syntaxhighlight lang="lua">
local czy_spis_rzeczy_napis_wprowadzenia_tekstu=(poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[spreparowany_uzyskany_tekst_rozdzialu]);
</syntaxhighlight>
Gdzie:
{{OpisParametrów
| 1 = {{Code|poziom_rozdzialu}} | _1 = Jak w: {{LinkPatrz|poziom_rozdzialu}}.
| 2 = {{Code|czy_jest_spis_tresci}} {{Patrz|czy_jest_spis_tresci}} | _2 = Czy jesteśmy w spisie treści.
| 3 = {{Code|dalej_nie_rozwazaj_spis_tresci}} {{Patrz|dalej_nie_rozwazaj_spis_tresci}} | _3 = Zmienna mówiąca, że teraz jesteśmy poza spisem treści.
}}
====== Kiedy uwzględniamy artykuły rozdziału ======
Jeżeli jesteśmy w spisie, to zawsze są uwzględniane artykuły rozdziału, bo jest ustawiona zmienna: {{Code|wliczaj_artykuly_tego_rozdzialu}} {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, na {{Code|true}}, a poza na {{Code|nil}}.
Funkcja jest przyszykowana jest dla jednego spisu treści, o ściśle określonym specjalnym napisie wprowadzenia tekstu, w danym spisie na stronie.
====== Iterator linii artykułu spis treści ======
Uruchamiamy iterator, używając funkcji lokalnej: {{LinkŚródtytuł|iteratorTekstuNaglowka}}, według wywołania:
<syntaxhighlight lang="lua">
local iterator=iteratorTekstuNaglowka();
</syntaxhighlight>
Ustawiamy zmienną: {{Code|wliczaj_artykuly_tego_rozdzialu}} {{LinkPatrz|wliczaj_artykuly_tego_rozdzialu}}, aby wliczał lub nie, pewne artykuły rozdziału według:
<syntaxhighlight lang="lua">
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
</syntaxhighlight>
Iterujemy otrzymanym ostatnio iteratorem, uzyskując kolejno zmienne: {{Code|przedrostek_listy}} {{LinkPatrz|przedrostek_listy}}, {{Code|tekstowy_przedrostek}} {{LinkPatrz|tekstowy_przedrostek}}, {{Code|linia}} {{LinkPatrz|linia}}, i {{Code|w_rozdziale}} {{LinkPatrz|w_rozdziale}}.
; Kiedy rozdziałów zerowych nie liczymy jako je{{dk}}
Dla rozdziałów, które nie sa poziomami z listą, sprawdzamy, czy to jest rozdział zerowy przy pomocy funkcji: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, i sprawdzamy, czy on przekracza rozmiar: {{Code|maksymalny_rozmiar_rozdzialu_zerowego}} {{LinkPatrz|maksymalny_rozmiar_rozdzialu_zerowego}}, jeżeli jest tym rozdziałem i nie przekracza pewnego rozmiaru, to to jest rozdział traktowany jako zerowy niepomijany rozdział zerowy, wtedy ustawiamy zmienną: {{Code|nie_pomijaj_tego_rozdzialu}} {{Patrz|nie_pomijaj_tego_rozdzialu}}, na {{Code|true}}.
; A jeśli to są rozdziały z listy zaczynające się od dwukropka w linii{{dk}}
Gdy taki rozdział nie pretenduje do zerowych, to sprawdzamy funkcją: {{Code|{{sr|#p.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu|p=StronicowyParser/Rozdziały}}}}, czy ten rozdział pominąć, a jeżeli ona przyjmuje wartość odpowiadającej fałszywej, czyli {{Code|false}}, wtedy ustawiamy zmienną: {{Code|nie_pomijaj_tego_rozdzialu}} {{LinkPatrz|nie_pomijaj_tego_rozdzialu}}, na taką samą wartość jak poprzednio.
; Inne rozdziały{{dk}}
Dla rozdziałów innych ta wartość przyjmuje postać {{Code|false}}.
; Rozdziały jednak nie pomijane{{dk}}
Ustalamy wartość {{Code|ile}} {{Patrz|ile}}, na wartość zero.
Dla rozdziałów, które nie są pomijane, wtedy zmienna: {{Code|nie_pomijaj_tego_rozdzialu}} {{LinkPatrz|nie_pomijaj_tego_rozdzialu}}, przyjmuje wartość {{Code|true}}, w takim przypadku wchodzimy do funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami|p=Szablonowe}}}}, wtedy dla linków szablonowych sprawdzamy, czy to są linki określone tablicami: {{Code|{{sr|#p.linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.linki_szablony_elementy_spisu_rzeczy}}, {{Code|{{sr|#p.inne_linki_szablony_elementy_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.inne_linki_szablony_elementy_spisu_rzeczy}} lub ewentualnie funkcją: {{Code|{{sr|#p.PodzielNaElementyNazwowyWikiLinkInteligentny|p=StronicowyParser/Potrzebne}}}}.
Wtedy jeżeli jest to link, to ikrementujemy: {{Code|ile}} {{LinkPatrz|ile}}.
Innym sposobem sprawdzania, czy to jest szablon linkowy jest tablica: {{Code|{{sr|#p.szablony_kompletowania_stron_woluminu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_kompletowania_stron_woluminu}}, lub {{Code|{{sr|#p.szablony_licencji|p=StroncowyParser/obiekty}}}} {{LinkPatrz|p.szablony_licencji}}.
Wtedy jest zwracane to:
<syntaxhighlight lang="lua">
return czy_szablon,obiekt,kod;
</syntaxhighlight>
Jeżeli to jest szablon linków, wtedy jest zwracana wartość: {{Code|return true,obiekt,kod}}, w przeciwnym wypadku:
<syntaxhighlight lang="lua">
return false,obiekt,kod;
</syntaxhighlight>
Innym sposobem liczenia, czy to jest link, to wtedy może być to link normalny: {{Code|LINKW}}, który można sprawdzić funkcją: {{Code|{{sr|#p["CzyLinkWewnętrzny"]|p=Specjalne}}}}, wtedy jest zwracane {{Patrz|gołe linki}}:
<syntaxhighlight lang="lua">
return true,obiekt,kod;
</syntaxhighlight>
Link też może być zewnętrzny, wtedy to jest: {{Code|LINKZ}}, wtedy funkcja zwraca wartości {{LinkPatrz|gołe linki}}.
; Kiedy analizujemy artykuły rozdziału{{dk}}
Następnie dla linii: {{Code|linia_rozwazana}} {{LinkPatrz|linia_rozwazana}}, co na podstawie tego liczymy, czy daną linię nie uwzględnić, w obliczeniach według schematu:
<syntaxhighlight lang="lua">
local czy_linia_uwzgledniana=mw.ustring.match(linia_rozwazana,"^%s*%-%-+(.*)%-%-+%s*$");
local czy_linia=((not czy_linia_uwzgledniana)and(mw.ustring.match(linia_rozwazana,"^%s*[%-%+%=%~]+.*$")
or ((#przedrostek_listy==0)and((mw.ustring.match(linia_rozwazana,"!"))and(mw.ustring.match(linia_rozwazana,"[^!]%s*$"))))
or mw.ustring.match(linia_rozwazana,"^%s*<")) or nil);
</syntaxhighlight>
Co następnie jest ustawiana: {{Code|nowa_linia}} {{LinkPatrz|nowa_linia}} na wartość {{Code|false}}.
; Warunek analizowania artykułów rozdziałów{{dk}}
W obliczeniach raz uwzględniamy funkcję: {{LinkŚródtytuł|AnalizaLiniiObiekty}}, w ostatniej omawianej pętli, schematycznie:
<syntaxhighlight lang="lua">
if(not czy_linia)then AnalizaLiniiObiekty(linia_rozwazana);end;
</syntaxhighlight>
===== Dalsza część funkcji {{nobold|{{LinkPatrz|opis funkcji-ZbieranieInformacjiWoluminuDanegoSpisuRzeczy}}}} =====
Bierzemy zakodowany tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu-IterTekst}}, i po nim iterator: {{Code|iterator}} {{LinkPatrz|iterator-IterTekst}}, wtedy iterujemy po parametrach:
<syntaxhighlight lang="lua">
local parsuj_rozdzialami=nil; ---- ta zmienna służy na wypadek, gdy by nie była żadnych rozwazanych rozdziałów;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
---- za każdym razem jest uruchamiana funkcja: AnalizaRozdzialu, przy rozważanym rozdziale;
AnalizaRozdzialu(rozdzial_tab[1],rozdzial_tab[2],text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany);
---- oznacz zmienną: parsuj_rozdzialami, wartością; true, a póżniej jąnie inicjuj;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
</syntaxhighlight>
Parametry zwracane przez iterator: {{Code|iterator}} {{LinkPatrz|iterator-IterTekst}}:
{{OpisParametrów
| 1 = {{Code|rozdzial_tab}} {{Code|{{=}}}} {{Code|<nowiki>{ [1] = rozdzial, [2] = linia_rozdzialu, }</nowiki>}} | _1 = tabela składająca się z dwóch elementów:
| 2 = Pod elementy tabeli: | nagłówek2 = tak
| 3 = {{Code|rozdzial}} | _3 = Jak w: {{LinkPatrz|rozdzial}}.
| 4 = {{Code|linia_rozdzialu}} | _4 = Jak w: {{LinkPatrz|linia_rozdzialu}}.
| 5 = Inne parametry: | nagłówek5 = tak
| 6 = {{Code|text}} | _6 = Jak w: {{LinkPatrz|text}}.
| 7 = {{Code|poziom_rozdzialu}} | _7 =Jak w: {{LinkPatrz|poziom_rozdzialu}}.
| 8 = {{Code|poczatek_rozdzialu}} | _8 = Jak w: {{LinkPatrz|poczatek_rozdzialu}}.
| 9 = {{Code|numeracja}} | _9 = Jak w: {{LinkPatrz|numeracja}}.
| 10 = {{Code|czy_rozdzial_centrowany}} | _10 = Jak w: {{LinkPatrz|czy_rozdzial_centrowany}}.
}}
Gdy nie napotkano żadnego rozważanego rozdziału, wtedy: {{Code|parsuj_rozdzialami}}, przyjmuje wartość {{Code|nil}}, w takim razie uruchamiana jest funkcja:
<syntaxhighlight lang="lua">
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",nil,tekst_rozwiniety_calego_artykulu,nil,nil,nil,nil);
end;
</syntaxhighlight>
Funkcja zwraca parametry inaczej, gdy artykuł, do którego należy książka jest korzystana, a inaczej, jeśli nie. W takim razie możemy zwracać na dwa sposoby:
<syntaxhighlight lang="lua">
if(czy_artykul_korzystany)then
return tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci;
else
return tabela_artykulow,nil,przekierowanie_spisu_tresci;
end;
</syntaxhighlight>
Przy artykułach korzystanych, co jest określone zmienną: {{Code|czy_artykul_korzystany}} {{LinkPatrz|czy_artykul_korzystany}}, tabelę: {{Code|tabela_licencji_spisu_tresci}} {{LinkPatrz|tabela_licencji_spisu_tresci}}, przy jego spisach treści w książkach, do której należy ten artykuł, zwracana jest jako wartość przeważnie jako nierówna {{Code|nil}}, a dla artykułów z innych książkach, ta wartość już jest taka, tzn. przyjmuje wartość {{Code|nil}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
p9fljo4rao273tssxdx0pezjgb13rzz
Wikibooks:Moduły/Parametry/Tom IV
4
63970
560326
556123
2026-10-30T07:03:21Z
Persino
2851
560326
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 kopiowania tabel.
== {{Śródtytuł|p["KopiujTabelęŁańcuchów"]}}{{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 w niej uzyskiwanej, to do niego dodajemy elementy z przedrostkiem i przyrostkiem, a na 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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Parametry/KopiujTabelęŁańcuchów/}}.
== {{Śródtytuł|p["KopiujTabelęElementów"]}}{{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: {{LinkŚródtytuł|p.CzyTak|Parametry/Tom XIII}}.
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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Parametry/KopiujTabelęElementów/}}.
== {{Śródtytuł|p["KopiujTabelęElementówBezTablicyKluczy"]}}{{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: {{LinkŚródtytuł|p.CzyJestTakiKluczTabeli|Parametry/Tom VIII}}. 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: {{LinkŚródtytuł|p.CzyTak|Parametry/Tom XIII}}.
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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Parametry/KopiujTabelęElementówBezTablicyKluczy/}}.
== {{Śródtytuł|p["KopiujRekurencyjnieTabelęElementów"]}}{{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ład kodu na stronie modułów z przykładami na stronie ich opisów ===
Popatrz na wyniki kodu, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w specjalnej ramce w: {{m|Wikibooks/Przykład/Parametry/KopiujRekurencyjnieTabelęElementów/}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ogb6rngn640ftnorg3s5167s8trt0cs
Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom III
4
64469
560347
560256
2026-10-30T11:00:47Z
Persino
2851
/* {{Śródtytuł|p.TabelaListyStronWoluminu}}{{Code|p.TabelaListyStronWoluminu}} */
560347
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.ParametryKonteneraWoluminu}}{{Code|p.ParametryKonteneraWoluminu}} ==
Funkcja generująca ustawienia zmiennej: {{Code|self}} {{LinkPatrz|self}}, w odpowiednio w odpowiednich kluczach:
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ParametryKonteneraWoluminu(self,frame,tabela_listy_danych_analizy_ksiazki)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|parametry-p.ParametryKonteneraWoluminu}}:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{LinkPatrz|frame}}.
| 3 = {{Code|tabela_listy_danych_analizy_ksiazki}} | _3 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}.
}}
Funkcja sprawdza, czy są zmienne o pewnych kluczach w zmiennej: {{Code|self}} {{LinkPatrz|self}}, o nazwach: {{Code|nazwa przestrzeni nazw}} {{Patrz|nazwa przestrzeni nazw}}, i {{Code|nazwa jednostki}} {{Patrz|nazwa jednostki}}.
* Jeżeli te zmienne, któreś z nich lub wszystkie, istnieją to:
: liczona jest zmienna: {{Code|self}} {{LinkPatrz|self}}, o kluczach: {{Code|naglowek}} {{Patrz|naglowek}}, i {{Code|parametry}} {{Patrz|parametry}}.
: Liczone są inne o kluczach poprzedniego parametru: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_woluminu}} {{LinkPatrz|nazwa_przestrzeni_woluminu}}, {{Code|nazwa_woluminu}} {{LinkPatrz|nazwa_woluminu}}, i {{Code|nazwa_podstrony_woluminu}} {{LinkPatrz|nazwa_podstrony_woluminu}}.
: Generowany jest parametr tej zmiennej o kluczu: {{Code|parametry_woluminu}} {{Patrz|parametry_woluminu}}, z wartością: {{Code|false}}.
:: Na podstawie zmiennych tablicy wielowymiarowej: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_woluminu}} {{LinkPatrz|nazwa_przestrzeni_woluminu}}, i {{Code|nazwa_woluminu}} {{LinkPatrz|nazwa_woluminu}}, wtedy mamy zmienną: {{Code|tab_lista_artykulow_w_ksiazce}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}. W tej zmiennej szukamy elementu o kluczu: {{Code|adres_woluminu_bazowego_spisu_rzeczy}} {{Patrz|adres_woluminu_bazowego_spisu_rzeczy}}, której kolejne elementy liczbowe przydzielamy zmiennym z: {{Code|self}} {{LinkPatrz|self}}, tzn.: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_woluminu}} {{LinkPatrz|nazwa_przestrzeni_woluminu}}, i {{Code|nazwa_woluminu}} {{LinkPatrz|nazwa_woluminu}}.
* Jeżeli owe nie istnieją:
: To z tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_woluminu}} {{LinkPatrz|nazwa_przestrzeni_woluminu}}, i {{Code|nazwa_woluminu}} {{LinkPatrz|nazwa_woluminu}}, są przedzielane ich wartości do {{Code|self}} {{LinkPatrz|self}}: o kluczach: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_woluminu}} {{LinkPatrz|nazwa_przestrzeni_woluminu}}, {{Code|nazwa_woluminu}} {{LinkPatrz|nazwa_woluminu}}, i {{Code|nazwa_podstrony_woluminu}} {{LinkPatrz|nazwa_podstrony_woluminu}}.
: Zmiennej: {{Code|parametry_woluminu}} {{LinkPatrz|parametry_woluminu}}, z wartością: {{Code|true}}.
== {{Śródtytuł|p.TabelaListyStronWoluminu}}{{Code|p.TabelaListyStronWoluminu}} ==
Funkcja liczy kolejno parametry tablic zebranych artykułów dla danej przestrzeni nazw, przestrzeni książki, nazwy książki i nazwy artykułu, te tablice dla nich są kolejno {{ZobaczTeż|tabele-p.TabelaListyStronWoluminu}}: {{Code|lista_artykulow_w_ksiazkach_w_danej_przestrzeni}} {{Patrz|lista_artykulow_w_ksiazkach_w_danej_przestrzeni}}, {{Code|tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki}} {{Patrz|tab_lista_ksiazek_w_danej_przestrzeni_nazw_ksiazki}}, {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}}, {{Code|tab_lista_zmiennych_w_artykule}} {{Patrz|tab_lista_zmiennych_w_artykule}}, {{Code|tab_lista_zmiennych_w_artykule}}, liczone w sposób podany w: {{LinkZobaczTeż|czy_podana}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.TabelaListyStronWoluminu(self,frame,tabela_listy_danych_analizy_ksiazki,czy_podana,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{LinkPatrz|frame}}.
| 3 = {{Code|tabela_listy_danych_analizy_ksiazki}} | _3 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}.
| 4 = {{Code|czy_podana}} {{Patrz|czy_podana}} | _4 = Czy liczyć {{ZobaczTeż|czy_podana}} tablicę według zmiennych z tym na końcu o kluczach z: {{Code|_podana}}, czy bez tego, dla tablicy: {{Code|tabela_listy_danych_analizy_ksiazki}}, licząc dla odpowiednich tych kluczy jawnych, jak i innych niejawnych, we właściwy sposób, wyznaczając różne tablicę: {{LinkZobaczTeż|tabele-p.TabelaListyStronWoluminu}}.
| 5 = {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}}, i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _5 = Kolejno jako: '''nazwa przestrzeni nazw''', '''nazwa przestrzeni książki''' i '''nazwa książki''', ale te nazwy są dla danej książki.
| 6 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _6 = Nazwa artykułu strony.
}}
Funkcja zwraca parametry określone:
<syntaxhighlight lang="lua">
return tab_lista_artykulow_w_ksiazce.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;
</syntaxhighlight>
Gdzie zmienna o kluczu: {{Code|spis}} {{Patrz|spis}}, zmiennej: {{Code|tab_lista_artykulow_w_ksiazce}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, to tablica spisu artykułów danej książki.
Jeżeli któraś z tablic jest o wartości {{Code|nil}}, to kolejne też są takie, i nie są liczone tam, wtedy w tym podświetlaczu składni, te zmienne przyjmują tą wartość odpowiednio mu danej w kodzie.
== {{Śródtytuł|p.AnalizujArgumentySzablonu}}{{Code|p.AnalizujArgumentySzablonu}} ==
Funkcja wyszukuje parametry funkcją: {{LinkŚródtytuł|p.PobierzArgsParametry|Parametry/Tom XIV}}, i zapamiętuje je w zmiennej: {{Code|self}} {{LinkPatrz|self}}, o kluczu: {{Code|args}} {{Patrz|args}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.AnalizujArgumentySzablonu(self,frame)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|parametry-p.AnalizujArgumentySzablonu}}:
{{OpisParametrów
| 1 = {{Code|self}} {{Patrz|self}} | _1 = Zmienna obiektowa ramki tablicy transportu modułu.
| 2 = {{Code|frame}} {{Patrz|frame}} | _2 = Zmienna tablicy ramki tablicy transportu modułu.
}}
== {{Śródtytuł|p.Args}}{{Code|p.Args}} ==
Funkcja zwraca tablicę parametrów zebranych w zmiennej: {{Code|self}} {{LinkPatrz|self}}, pod kluczem: {{Code|args}} {{LinkPatrz|args}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Args(self)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}.
}}
== {{Śródtytuł|p.Self}}{{Code|p.Self}} ==
Funkcja generuje główną tablicę przy pomocy przypisania z: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}} lub policzenia, jeśli ona nie istnieje, z modułu: {{LinkZobaczTeż|informacje}}, zbierając jego klucz o nazwie: {{Code|tablica_zebranych_danych_woluminowych}} {{Patrz|tablica_zebranych_danych_woluminowych}}.
Funkcja definiuje i inicjuje pustą tablicą zmienną: {{Code|self_tab}} {{Patrz|self_tab}}. Przypisuje jej elementy o kluczach o odpowiednio: {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_woluminu}} {{Patrz|nazwa_przestrzeni_woluminu}}, {{Code|nazwa_woluminu}} {{Patrz|nazwa_woluminu}}, i {{Code|nazwa_podstrony_woluminu}} {{Patrz|nazwa_podstrony_woluminu}}, ze zmiennej: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, kolejno o odpowiednich kluczach o takich samych nazwach, jak w tej poprzedniej tablicy.
We zmiennej: {{Code|self_tab}} {{LinkPatrz|self_tab}}, zmienne o kluczach: {{Code|nazwa_przestrzeni_podana}} {{Patrz|nazwa_przestrzeni_podana}}, {{Code|nazwa_przestrzeni_woluminu_podana}} {{Patrz|nazwa_przestrzeni_woluminu_podana}}, {{Code|nazwa_woluminu_podana}} {{Patrz|nazwa_woluminu_podana}}, i {{Code|nazwa_podstrony_woluminu_podana}} {{Patrz|nazwa_podstrony_woluminu_podana}}, im przypisuje się zmienne z: {{Code|self}} {{LinkPatrz|self}}, o kluczach tego bez {{Code|_podana}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Self(self,tabela_listy_danych_analizy_ksiazki)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{LinkPatrz|self}}.
| 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} | _2 = Tablica główna generowana przez moduł {{ZobaczTeż|informacje}}: {{Code|{{ld2|StronicowyParser/informacje}}}}.
}}
Funkcja zwraca parametry:
<syntaxhighlight lang="lua">
return self_tab,tabela_listy_danych_analizy_ksiazki;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
kcx1w1s5fhi3n0km32c60l01ynz2ctq
Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom V
4
64471
560291
560290
2026-10-29T12:02:11Z
Persino
2851
/* {{Śródtytuł|p.IteratorPoWprowadzeniachNapisowychTekstu}}{{Code|p.IteratorPoWprowadzeniachNapisowychTekstu}} */
560291
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IteratorPoWprowadzeniachNapisowychTekstu}}{{Code|p.IteratorPoWprowadzeniachNapisowychTekstu}} ==
To jest iterator po tablicy nagłówków zdefiniowanej w tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tablica_napisowa_wprowadzenia_tekstu}}{{LinkPatrz|tablica_napisowa_wprowadzenia_tekstu|StronicowyParser/Potrzebne/Tom IV}}, a jeśli w tej funkcji nie istnieje, to jest tworzona, przy pomocy: {{LinkŚródtytuł|p.TablicaNapisowaPoWprowadzeniachTekstu|StronicowyParser/Potrzebne/Tom IV}}.
Funkcja zwraca iterator funkcji iteratora zdefiniowaną w: {{LinkŚródtytuł|p.IteratorPoNumerowanychElementachTablicy|Parametry/Tom XIX}}, której parametrem jest tablica nagłówków w danym spisach dostępnych dla danej książki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IteratorPoWprowadzeniachNapisowychTekstu(self,frame)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja ma takie same parametry jak funkcja, dla której dotyczą parametry: {{LinkZobaczTeż|parametry-p.AnalizujArgumentySzablonu|StronicowyParser/Potrzebne/Tom III}}. | komórka1 = tak
}}
Funkcja w wyniku iteracji zwraca za każdym razem nagłówek przetworzony i zanalizowany. Koniec iteracji nastąpi tego, gdy jest koniec zasobów przetwarzania nagłówków, wszystkich spisów obsługiwanej przez bieżącą książkę, względem danej strony.
== {{Śródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}}{{Code|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}} ==
Funkcja iteruje po artykułach danej książki, które są zapisane na jej stronie głównej, i na stronach ustawień skategoryzowanych w: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, w użytym tam stronach szablonu: {{s|Układ autonawigacji}}, dla danej bieżącej książki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,spis_tresci,inne_spisy,dodatkowe_artykuly)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}. Parametr wymagany.
| 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}. Parametr opcjonalny.
| 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Zmienna odpowiadająca: {{Code|spis}} {{LinkPatrz|spis|StronicowyParser/Potrzebne/Tom III}}. Parametr opcjonalny.
| 4 = {{Code|spis_tresci}} {{Patrz|spis_tresci}} | _4 = Nazwa bazowego spisu. Parametr opcjonalny. To jemu odpowiada łańcuch znakowy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 5 = {{Code|inne_spisy}} {{Patrz|inne_spisy}} | _5 = Tabela rozdziałów i w nim z artykułami, w innych spisach. Parametr opcjonalny. To jemu odpowiada tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 6 = {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}} | _6 = Dodatkowe artykuły książki ustawione w szablonie spisu artykułów do nawigacji. Parametr opcjonalny. To jemu odpowiada tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
}}
Funkcja uwzględnia zagnieżdżone stosowanie spisów bezpośrednio w innych spisach tej samej danej książki. Spotkanie tego w spisie w iteracjach iterotora powoduje, że on podąża za jego artykułami, itd. w nim, aż do wyczerpania zasobów.
Funkcja iterując tym iteratorem zwraca wyniki w postaci wielu po kolei wartości, a tego zarys:
<syntaxhighlight lang="lua">
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
</syntaxhighlight>
Opis parametrów zwracanych przez iterator:
{{OpisParametrów
| 1 = {{Code|artykul}} {{Patrz|artykul}} | _1 = Tabela z adresem artykułu, i innymi parametrami w postaci tablicy, względem danej książki, ale bez pełnej nazwy książki, a w przypadku innej strony niż to, to wtedy to reprezentuje pełną nazwę tego. Ta wartość jest wtedy nilowa, gdy nastąpił koniec zasobów spisów, ale w żadnym innym wypadku.
| 2 = {{Code|nazwa}} {{Patrz|nazwa}} | _2 = Nazwa linku, to nie jest jego adres, w przypadku, gdy to tego nie ma to zwracane jest tego wartość nilowa.
| 3 = {{Code|przekierowanie}} {{Patrz|przekierowanie}} | _3 = Tabela przekierowania danego artykułu, i innymi jego danymi, a jeżeli to nie istnieje, to zwracana jest wartość nilowa.
| 4 = {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}} | _4 = Pełna nazwa książki w postaci tabeli, w innym wypadku niż artykuł aktualnej książki.
}}
Te tablice są dobrze opisane na stronach dokumentacji modułów, w tym przypadku chodzi, tu o: {{lr2|Moduły/StronicowyParser/SpisTreści}}, gdzie tam jest wskazana w sposób ogólny tablica: {{Code|tab_stare}}, w sposób jej tworzenia i definicja ogólna. Jej części są właśnie zwracane przez ten iterator. Przed pisaniem przykładów należy się zapoznać ze strukturą ich.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
p4y6ue0400nd3xgjqmniiaxim41ko9n
560292
560291
2026-10-29T12:05:47Z
Persino
2851
/* {{Śródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}}{{Code|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}} */
560292
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IteratorPoWprowadzeniachNapisowychTekstu}}{{Code|p.IteratorPoWprowadzeniachNapisowychTekstu}} ==
To jest iterator po tablicy nagłówków zdefiniowanej w tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tablica_napisowa_wprowadzenia_tekstu}}{{LinkPatrz|tablica_napisowa_wprowadzenia_tekstu|StronicowyParser/Potrzebne/Tom IV}}, a jeśli w tej funkcji nie istnieje, to jest tworzona, przy pomocy: {{LinkŚródtytuł|p.TablicaNapisowaPoWprowadzeniachTekstu|StronicowyParser/Potrzebne/Tom IV}}.
Funkcja zwraca iterator funkcji iteratora zdefiniowaną w: {{LinkŚródtytuł|p.IteratorPoNumerowanychElementachTablicy|Parametry/Tom XIX}}, której parametrem jest tablica nagłówków w danym spisach dostępnych dla danej książki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IteratorPoWprowadzeniachNapisowychTekstu(self,frame)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja ma takie same parametry jak funkcja, dla której dotyczą parametry: {{LinkZobaczTeż|parametry-p.AnalizujArgumentySzablonu|StronicowyParser/Potrzebne/Tom III}}. | komórka1 = tak
}}
Funkcja w wyniku iteracji zwraca za każdym razem nagłówek przetworzony i zanalizowany. Koniec iteracji nastąpi tego, gdy jest koniec zasobów przetwarzania nagłówków, wszystkich spisów obsługiwanej przez bieżącą książkę, względem danej strony.
== {{Śródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}}{{Code|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}} ==
Funkcja iteruje po artykułach danej książki, które są zapisane na jej stronie głównej, i na stronach ustawień skategoryzowanych w: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, w użytym tam stronach szablonu: {{s|Układ autonawigacji}}, dla danej bieżącej książki.
Funkcja wykorzystuje iterator: {{LinkŚródtytuł|p.IteratorPoNumerowanychElementachTablicy|Parametry/Tom XIX}}, do generowania jeszcze większego iteratora, który jest tym opisywanym. Funkcja wykorzystuje spisy i ich tabelki do generacji definicji tego iteratora.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,spis_tresci,inne_spisy,dodatkowe_artykuly)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}. Parametr wymagany.
| 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}. Parametr opcjonalny.
| 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Zmienna odpowiadająca: {{Code|spis}} {{LinkPatrz|spis|StronicowyParser/Potrzebne/Tom III}}. Parametr opcjonalny.
| 4 = {{Code|spis_tresci}} {{Patrz|spis_tresci}} | _4 = Nazwa bazowego spisu. Parametr opcjonalny. To jemu odpowiada łańcuch znakowy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 5 = {{Code|inne_spisy}} {{Patrz|inne_spisy}} | _5 = Tabela rozdziałów i w nim z artykułami, w innych spisach. Parametr opcjonalny. To jemu odpowiada tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 6 = {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}} | _6 = Dodatkowe artykuły książki ustawione w szablonie spisu artykułów do nawigacji. Parametr opcjonalny. To jemu odpowiada tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
}}
Funkcja uwzględnia zagnieżdżone stosowanie spisów bezpośrednio w innych spisach tej samej danej książki. Spotkanie tego w spisie w iteracjach iterotora powoduje, że on podąża za jego artykułami, itd. w nim, aż do wyczerpania zasobów.
Funkcja iterując tym iteratorem zwraca wyniki w postaci wielu po kolei wartości, a tego zarys:
<syntaxhighlight lang="lua">
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
</syntaxhighlight>
Opis parametrów zwracanych przez iterator:
{{OpisParametrów
| 1 = {{Code|artykul}} {{Patrz|artykul}} | _1 = Tabela z adresem artykułu, i innymi parametrami w postaci tablicy, względem danej książki, ale bez pełnej nazwy książki, a w przypadku innej strony niż to, to wtedy to reprezentuje pełną nazwę tego. Ta wartość jest wtedy nilowa, gdy nastąpił koniec zasobów spisów, ale w żadnym innym wypadku.
| 2 = {{Code|nazwa}} {{Patrz|nazwa}} | _2 = Nazwa linku, to nie jest jego adres, w przypadku, gdy to tego nie ma to zwracane jest tego wartość nilowa.
| 3 = {{Code|przekierowanie}} {{Patrz|przekierowanie}} | _3 = Tabela przekierowania danego artykułu, i innymi jego danymi, a jeżeli to nie istnieje, to zwracana jest wartość nilowa.
| 4 = {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}} | _4 = Pełna nazwa książki w postaci tabeli, w innym wypadku niż artykuł aktualnej książki.
}}
Te tablice są dobrze opisane na stronach dokumentacji modułów, w tym przypadku chodzi, tu o: {{lr2|Moduły/StronicowyParser/SpisTreści}}, gdzie tam jest wskazana w sposób ogólny tablica: {{Code|tab_stare}}, w sposób jej tworzenia i definicja ogólna. Jej części są właśnie zwracane przez ten iterator. Przed pisaniem przykładów należy się zapoznać ze strukturą ich.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
chc2zmhjyth0i5fqmuyz8iifguhxham
560293
560292
2026-10-29T12:30:33Z
Persino
2851
/* {{Śródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}}{{Code|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}} */
560293
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IteratorPoWprowadzeniachNapisowychTekstu}}{{Code|p.IteratorPoWprowadzeniachNapisowychTekstu}} ==
To jest iterator po tablicy nagłówków zdefiniowanej w tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tablica_napisowa_wprowadzenia_tekstu}}{{LinkPatrz|tablica_napisowa_wprowadzenia_tekstu|StronicowyParser/Potrzebne/Tom IV}}, a jeśli w tej funkcji nie istnieje, to jest tworzona, przy pomocy: {{LinkŚródtytuł|p.TablicaNapisowaPoWprowadzeniachTekstu|StronicowyParser/Potrzebne/Tom IV}}.
Funkcja zwraca iterator funkcji iteratora zdefiniowaną w: {{LinkŚródtytuł|p.IteratorPoNumerowanychElementachTablicy|Parametry/Tom XIX}}, której parametrem jest tablica nagłówków w danym spisach dostępnych dla danej książki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IteratorPoWprowadzeniachNapisowychTekstu(self,frame)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja ma takie same parametry jak funkcja, dla której dotyczą parametry: {{LinkZobaczTeż|parametry-p.AnalizujArgumentySzablonu|StronicowyParser/Potrzebne/Tom III}}. | komórka1 = tak
}}
Funkcja w wyniku iteracji zwraca za każdym razem nagłówek przetworzony i zanalizowany. Koniec iteracji nastąpi tego, gdy jest koniec zasobów przetwarzania nagłówków, wszystkich spisów obsługiwanej przez bieżącą książkę, względem danej strony.
== {{Śródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}}{{Code|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}} ==
Funkcja iteruje po artykułach danej książki, które są zapisane na jej stronie głównej, i na stronach ustawień skategoryzowanych w: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, w użytym tam stronach szablonu: {{s|Układ autonawigacji}}, dla danej bieżącej książki.
Funkcja wykorzystuje iterator: {{LinkŚródtytuł|p.IteratorPoNumerowanychElementachTablicy|Parametry/Tom XIX}}, do generowania jeszcze większego iteratora, który jest tym opisywanym. Funkcja wykorzystuje spisy i ich tabelki do generacji definicji tego iteratora.
Funkcja może iterować też po podanym spisie w zmiennej ramki: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}, według zmiennej: {{Code|spis}} {{Patrz|spis}}, która jest dekodowana funkcją: {{LinkŚródtytuł|p.DecodeHtml|Html/Tom VI}}, formatujące ciągowo według: {{LinkŚródtytuł|p["Odstępy"]|Parametry/Tom VI}}, a póxniej jeżeli ona jest adresem względnym, to jest rozwijana według: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, a później jest liczone jej przekierowanie: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}, a na ostatku nazwa spisu według jest przedstawienia artykularnego: {{LinkŚródtytuł|p["NAZWAARTYKUŁUKSIĄŻKI"]|Nazwy/Tom IV}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,spis_tresci,inne_spisy,dodatkowe_artykuly)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}. Parametr wymagany.
| 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}. Parametr opcjonalny.
| 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Zmienna odpowiadająca: {{Code|spis}} {{LinkPatrz|spis|StronicowyParser/Potrzebne/Tom III}}. Parametr opcjonalny.
| 4 = {{Code|spis_tresci}} {{Patrz|spis_tresci}} | _4 = Nazwa bazowego spisu. Parametr opcjonalny. To jemu odpowiada łańcuch znakowy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 5 = {{Code|inne_spisy}} {{Patrz|inne_spisy}} | _5 = Tabela rozdziałów i w nim z artykułami, w innych spisach. Parametr opcjonalny. To jemu odpowiada tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 6 = {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}} | _6 = Dodatkowe artykuły książki ustawione w szablonie spisu artykułów do nawigacji. Parametr opcjonalny. To jemu odpowiada tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
}}
Funkcja uwzględnia zagnieżdżone stosowanie spisów bezpośrednio w innych spisach tej samej danej książki. Spotkanie tego w spisie w iteracjach iterotora powoduje, że on podąża za jego artykułami, itd. w nim, aż do wyczerpania zasobów.
Funkcja iterując tym iteratorem zwraca wyniki w postaci wielu po kolei wartości, a tego zarys:
<syntaxhighlight lang="lua">
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
</syntaxhighlight>
Opis parametrów zwracanych przez iterator:
{{OpisParametrów
| 1 = {{Code|artykul}} {{Patrz|artykul}} | _1 = Tabela z adresem artykułu, i innymi parametrami w postaci tablicy, względem danej książki, ale bez pełnej nazwy książki, a w przypadku innej strony niż to, to wtedy to reprezentuje pełną nazwę tego. Ta wartość jest wtedy nilowa, gdy nastąpił koniec zasobów spisów, ale w żadnym innym wypadku.
| 2 = {{Code|nazwa}} {{Patrz|nazwa}} | _2 = Nazwa linku, to nie jest jego adres, w przypadku, gdy to tego nie ma to zwracane jest tego wartość nilowa.
| 3 = {{Code|przekierowanie}} {{Patrz|przekierowanie}} | _3 = Tabela przekierowania danego artykułu, i innymi jego danymi, a jeżeli to nie istnieje, to zwracana jest wartość nilowa.
| 4 = {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}} | _4 = Pełna nazwa książki w postaci tabeli, w innym wypadku niż artykuł aktualnej książki.
}}
Te tablice są dobrze opisane na stronach dokumentacji modułów, w tym przypadku chodzi, tu o: {{lr2|Moduły/StronicowyParser/SpisTreści}}, gdzie tam jest wskazana w sposób ogólny tablica: {{Code|tab_stare}}, w sposób jej tworzenia i definicja ogólna. Jej części są właśnie zwracane przez ten iterator. Przed pisaniem przykładów należy się zapoznać ze strukturą ich.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cywi44blz2yy05ohsf80jx3qlg333zh
560294
560293
2026-10-29T12:31:02Z
Persino
2851
/* {{Śródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}}{{Code|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}} */
560294
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IteratorPoWprowadzeniachNapisowychTekstu}}{{Code|p.IteratorPoWprowadzeniachNapisowychTekstu}} ==
To jest iterator po tablicy nagłówków zdefiniowanej w tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tablica_napisowa_wprowadzenia_tekstu}}{{LinkPatrz|tablica_napisowa_wprowadzenia_tekstu|StronicowyParser/Potrzebne/Tom IV}}, a jeśli w tej funkcji nie istnieje, to jest tworzona, przy pomocy: {{LinkŚródtytuł|p.TablicaNapisowaPoWprowadzeniachTekstu|StronicowyParser/Potrzebne/Tom IV}}.
Funkcja zwraca iterator funkcji iteratora zdefiniowaną w: {{LinkŚródtytuł|p.IteratorPoNumerowanychElementachTablicy|Parametry/Tom XIX}}, której parametrem jest tablica nagłówków w danym spisach dostępnych dla danej książki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IteratorPoWprowadzeniachNapisowychTekstu(self,frame)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja ma takie same parametry jak funkcja, dla której dotyczą parametry: {{LinkZobaczTeż|parametry-p.AnalizujArgumentySzablonu|StronicowyParser/Potrzebne/Tom III}}. | komórka1 = tak
}}
Funkcja w wyniku iteracji zwraca za każdym razem nagłówek przetworzony i zanalizowany. Koniec iteracji nastąpi tego, gdy jest koniec zasobów przetwarzania nagłówków, wszystkich spisów obsługiwanej przez bieżącą książkę, względem danej strony.
== {{Śródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}}{{Code|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}} ==
Funkcja iteruje po artykułach danej książki, które są zapisane na jej stronie głównej, i na stronach ustawień skategoryzowanych w: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, w użytym tam stronach szablonu: {{s|Układ autonawigacji}}, dla danej bieżącej książki.
Funkcja wykorzystuje iterator: {{LinkŚródtytuł|p.IteratorPoNumerowanychElementachTablicy|Parametry/Tom XIX}}, do generowania jeszcze większego iteratora, który jest tym opisywanym. Funkcja wykorzystuje spisy i ich tabelki do generacji definicji tego iteratora.
Funkcja może iterować też po podanym spisie w zmiennej ramki: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}, według zmiennej: {{Code|spis}} {{Patrz|spis}}, która jest dekodowana funkcją: {{LinkŚródtytuł|p.DecodeHtml|Html/Tom VI}}, formatujące ciągowo według: {{LinkŚródtytuł|p["Odstępy"]|Parametry/Tom VI}}, a póxniej jeżeli ona jest adresem względnym, to jest rozwijana według: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, a później jest liczone jej przekierowanie: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}} a na ostatku nazwa spisu według jest przedstawienia artykularnego: {{LinkŚródtytuł|p["NAZWAARTYKUŁUKSIĄŻKI"]|Nazwy/Tom IV}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,spis_tresci,inne_spisy,dodatkowe_artykuly)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}. Parametr wymagany.
| 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}. Parametr opcjonalny.
| 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Zmienna odpowiadająca: {{Code|spis}} {{LinkPatrz|spis|StronicowyParser/Potrzebne/Tom III}}. Parametr opcjonalny.
| 4 = {{Code|spis_tresci}} {{Patrz|spis_tresci}} | _4 = Nazwa bazowego spisu. Parametr opcjonalny. To jemu odpowiada łańcuch znakowy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 5 = {{Code|inne_spisy}} {{Patrz|inne_spisy}} | _5 = Tabela rozdziałów i w nim z artykułami, w innych spisach. Parametr opcjonalny. To jemu odpowiada tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 6 = {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}} | _6 = Dodatkowe artykuły książki ustawione w szablonie spisu artykułów do nawigacji. Parametr opcjonalny. To jemu odpowiada tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
}}
Funkcja uwzględnia zagnieżdżone stosowanie spisów bezpośrednio w innych spisach tej samej danej książki. Spotkanie tego w spisie w iteracjach iterotora powoduje, że on podąża za jego artykułami, itd. w nim, aż do wyczerpania zasobów.
Funkcja iterując tym iteratorem zwraca wyniki w postaci wielu po kolei wartości, a tego zarys:
<syntaxhighlight lang="lua">
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
</syntaxhighlight>
Opis parametrów zwracanych przez iterator:
{{OpisParametrów
| 1 = {{Code|artykul}} {{Patrz|artykul}} | _1 = Tabela z adresem artykułu, i innymi parametrami w postaci tablicy, względem danej książki, ale bez pełnej nazwy książki, a w przypadku innej strony niż to, to wtedy to reprezentuje pełną nazwę tego. Ta wartość jest wtedy nilowa, gdy nastąpił koniec zasobów spisów, ale w żadnym innym wypadku.
| 2 = {{Code|nazwa}} {{Patrz|nazwa}} | _2 = Nazwa linku, to nie jest jego adres, w przypadku, gdy to tego nie ma to zwracane jest tego wartość nilowa.
| 3 = {{Code|przekierowanie}} {{Patrz|przekierowanie}} | _3 = Tabela przekierowania danego artykułu, i innymi jego danymi, a jeżeli to nie istnieje, to zwracana jest wartość nilowa.
| 4 = {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}} | _4 = Pełna nazwa książki w postaci tabeli, w innym wypadku niż artykuł aktualnej książki.
}}
Te tablice są dobrze opisane na stronach dokumentacji modułów, w tym przypadku chodzi, tu o: {{lr2|Moduły/StronicowyParser/SpisTreści}}, gdzie tam jest wskazana w sposób ogólny tablica: {{Code|tab_stare}}, w sposób jej tworzenia i definicja ogólna. Jej części są właśnie zwracane przez ten iterator. Przed pisaniem przykładów należy się zapoznać ze strukturą ich.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
nzpyumhsqs8jcyx888ly242rmx7joqq
560295
560294
2026-10-29T12:31:24Z
Persino
2851
/* {{Śródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}}{{Code|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}} */
560295
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IteratorPoWprowadzeniachNapisowychTekstu}}{{Code|p.IteratorPoWprowadzeniachNapisowychTekstu}} ==
To jest iterator po tablicy nagłówków zdefiniowanej w tablicy: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tablica_napisowa_wprowadzenia_tekstu}}{{LinkPatrz|tablica_napisowa_wprowadzenia_tekstu|StronicowyParser/Potrzebne/Tom IV}}, a jeśli w tej funkcji nie istnieje, to jest tworzona, przy pomocy: {{LinkŚródtytuł|p.TablicaNapisowaPoWprowadzeniachTekstu|StronicowyParser/Potrzebne/Tom IV}}.
Funkcja zwraca iterator funkcji iteratora zdefiniowaną w: {{LinkŚródtytuł|p.IteratorPoNumerowanychElementachTablicy|Parametry/Tom XIX}}, której parametrem jest tablica nagłówków w danym spisach dostępnych dla danej książki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IteratorPoWprowadzeniachNapisowychTekstu(self,frame)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja ma takie same parametry jak funkcja, dla której dotyczą parametry: {{LinkZobaczTeż|parametry-p.AnalizujArgumentySzablonu|StronicowyParser/Potrzebne/Tom III}}. | komórka1 = tak
}}
Funkcja w wyniku iteracji zwraca za każdym razem nagłówek przetworzony i zanalizowany. Koniec iteracji nastąpi tego, gdy jest koniec zasobów przetwarzania nagłówków, wszystkich spisów obsługiwanej przez bieżącą książkę, względem danej strony.
== {{Śródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}}{{Code|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji}} ==
Funkcja iteruje po artykułach danej książki, które są zapisane na jej stronie głównej, i na stronach ustawień skategoryzowanych w: {{lk2|Szablony nawigacyjne układu autonawigacji do autonawigacji podręczników}}, w użytym tam stronach szablonu: {{s|Układ autonawigacji}}, dla danej bieżącej książki.
Funkcja wykorzystuje iterator: {{LinkŚródtytuł|p.IteratorPoNumerowanychElementachTablicy|Parametry/Tom XIX}}, do generowania jeszcze większego iteratora, który jest tym opisywanym. Funkcja wykorzystuje spisy i ich tabelki do generacji definicji tego iteratora.
Funkcja może iterować też po podanym spisie w zmiennej ramki: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}, według zmiennej: {{Code|spis}} {{Patrz|spis}}, która jest dekodowana funkcją: {{LinkŚródtytuł|p.DecodeHtml|Html/Tom VI}}, formatujące ciągowo według: {{LinkŚródtytuł|p["Odstępy"]|Parametry/Tom VI}}, a póxniej jeżeli ona jest adresem względnym, to jest rozwijana według: {{Code|{{sr|#p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]|p=Techniczne}}}}, a później jest liczone jej przekierowanie: {{Code|{{sr|#p.PrzekierowanieDoStrony|p=Techniczne}}}} a na ostatku nazwa spisu według jest przedstawienia artykularnego: {{LinkŚródtytuł|m["NAZWAARTYKUŁUKSIĄŻKI"]|Nazwy/Tom IV}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,spis_tresci,inne_spisy,dodatkowe_artykuly)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|frame}} | _1 = Jak w: {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}. Parametr wymagany.
| 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} | _2 = Jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}. Parametr opcjonalny.
| 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Zmienna odpowiadająca: {{Code|spis}} {{LinkPatrz|spis|StronicowyParser/Potrzebne/Tom III}}. Parametr opcjonalny.
| 4 = {{Code|spis_tresci}} {{Patrz|spis_tresci}} | _4 = Nazwa bazowego spisu. Parametr opcjonalny. To jemu odpowiada łańcuch znakowy: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|nazwa_bazowego_spisu}} {{Patrz|nazwa_bazowego_spisu}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 5 = {{Code|inne_spisy}} {{Patrz|inne_spisy}} | _5 = Tabela rozdziałów i w nim z artykułami, w innych spisach. Parametr opcjonalny. To jemu odpowiada tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_inne_spisy}} {{Patrz|tab_inne_spisy}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
| 6 = {{Code|dodatkowe_artykuly}} {{Patrz|dodatkowe_artykuly}} | _6 = Dodatkowe artykuły książki ustawione w szablonie spisu artykułów do nawigacji. Parametr opcjonalny. To jemu odpowiada tabela: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|dodatkowe_strony_woluminu}} {{Patrz|dodatkowe_strony_woluminu}}, gdy nie podano parametru: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}.
}}
Funkcja uwzględnia zagnieżdżone stosowanie spisów bezpośrednio w innych spisach tej samej danej książki. Spotkanie tego w spisie w iteracjach iterotora powoduje, że on podąża za jego artykułami, itd. w nim, aż do wyczerpania zasobów.
Funkcja iterując tym iteratorem zwraca wyniki w postaci wielu po kolei wartości, a tego zarys:
<syntaxhighlight lang="lua">
return artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki;
</syntaxhighlight>
Opis parametrów zwracanych przez iterator:
{{OpisParametrów
| 1 = {{Code|artykul}} {{Patrz|artykul}} | _1 = Tabela z adresem artykułu, i innymi parametrami w postaci tablicy, względem danej książki, ale bez pełnej nazwy książki, a w przypadku innej strony niż to, to wtedy to reprezentuje pełną nazwę tego. Ta wartość jest wtedy nilowa, gdy nastąpił koniec zasobów spisów, ale w żadnym innym wypadku.
| 2 = {{Code|nazwa}} {{Patrz|nazwa}} | _2 = Nazwa linku, to nie jest jego adres, w przypadku, gdy to tego nie ma to zwracane jest tego wartość nilowa.
| 3 = {{Code|przekierowanie}} {{Patrz|przekierowanie}} | _3 = Tabela przekierowania danego artykułu, i innymi jego danymi, a jeżeli to nie istnieje, to zwracana jest wartość nilowa.
| 4 = {{Code|pelna_nazwa_ksiazki}} {{Patrz|pelna_nazwa_ksiazki}} | _4 = Pełna nazwa książki w postaci tabeli, w innym wypadku niż artykuł aktualnej książki.
}}
Te tablice są dobrze opisane na stronach dokumentacji modułów, w tym przypadku chodzi, tu o: {{lr2|Moduły/StronicowyParser/SpisTreści}}, gdzie tam jest wskazana w sposób ogólny tablica: {{Code|tab_stare}}, w sposób jej tworzenia i definicja ogólna. Jej części są właśnie zwracane przez ten iterator. Przed pisaniem przykładów należy się zapoznać ze strukturą ich.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1ral438iedjipezxy7hie1z9m0fkxfq
Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom VI
4
64472
560311
560288
2026-10-29T17:09:44Z
Persino
2851
/* {{Śródtytuł|p.ObliczeniaInformacje}}{{Code|p.ObliczeniaInformacje}} */
560311
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.OdpowiednikNaPrzemianArtykularnychStronWoluminu}}{{Code|p.OdpowiednikNaPrzemianArtykularnychStronWoluminu}} ==
Funkcja wykorzystuje do iteracji iterator funkcja zwracaną przez: {{LinkŚródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji|StronicowyParser/Potrzebne/Tom V}}. Tą funkcję zwracaną przez to uruchamiany w każdym obiegu iteracji przez instrukcję pętlową funkcji bezparametrowej: {{Code|iterator}} {{Patrz|iterator}}:
<syntaxhighlight lang="lua">
for nazwa_artykulu_w_bazie,nazwa,przekierowanie_w_bazie,pelna_nazwa_ksiazki in iterator do for nazwa_artykulu_w_bazie,nazwa,przekierowanie_w_bazie,pelna_nazwa_ksiazki in iterator do
</syntaxhighlight>
Funkcja liczy odpowiednik adresowy nieprzekierowaniowy, gdy to liczymy dany artykuł, który jest przekierowaniem, to wtedy jest zwracane, na co on wskazuje, artykuł, który nie jest przekierowaniem. Funkcja też sprawdzam którym typ przypadku rozważamy, dostępne typy:
{{GridTabela|klasa=gridtable dwukolumna-tytułowa |liczba wierszy=4|liczba kolumn=2
| nagłówek 1 = Tryb | nagłówek 2 = Opis
| komórka 1_1 = {{Code|1}} | komórka 1_2 = Mamy, gdy artykuł jest przekierowaniem danej książki.
| komórka 2_1 = {{Code|2}} | komórka 2_2 = Mamy, gdy strona główna bieżącej książki jest przekierowaniem do innej książki.
| komórka 3_1 = {{Code|3}} | komórka 3_2 = Gdy dana strona artykułu książki, ale z adresem książki w bazie rozdziałów i artykułu, gdy istnieje, wtedy artykuł książki nie jest przekierowaniem, to wtedy nie jest sprawdzane, czy istnieje, tylko wtedy funkcja zwraca tą drugą wartość taką.
| komórka 4_1 = {{Code|4}} | komórka 4_2 = Jak powyżej, tylko że ten artykuł nie istnieje. Przeciwnie w takim przypadku w sytuacji braku informacji o książce w bazie, tzn. mamy artykuł dla danej książki, jej bieżącej, dla danego artykułu, on przyjmuje nie tą, tylko wtedy wartość tą powyższą.
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tab_lista_artykulow_w_ksiazce_spis,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,co_ma_wykrywac)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|tab_lista_artykulow_w_ksiazce_spis}}| _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis|StronicowyParser/Potrzebne/Tom V}}.
| 2 = {{Code|nazwa_glownego_spisu}} | _2 = Jak w: {{LinkPatrz|spis_tresci|StronicowyParser/Potrzebne/Tom V}}.
| 3 = {{Code|tab_inne_spisy}} | _3 = Jak w: {{LinkPatrz|inne_spisy|StronicowyParser/Potrzebne/Tom V}}.
| 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, i {{Code|nazwa_ksiazki}} | _4 = Te zmienne są kolejno zdefiniowane, jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Potrzebne/Tom III}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Potrzebne/Tom III}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Potrzebne/Tom III}}.
| 5 = {{Code|nazwa_artykulu}} | _5 = Jak w: {{LinkPatrz|nazwa_artykulu|StronicowyParser/Potrzebne/Tom III}}.
| 6 = {{Code|co_ma_wykrywac}} | _6 = Zmienna sterująca w warunku (instrukcji warunkowej), czy ma wyświetlać wyniki w przypadku innych książek w spisie, gdy to nie jest artykuł danej książki, w dla bieżącego podręcznika, wartość przeciwna niż prawdziwa, powoduje, że jest wyświetlany w ogóle wynik.
}}
Funkcja zwraca wartości, przypadku gdy ma zrzucać jakąś wartość:
<syntaxhighlight lang="lua">
return nazwa_artykulu_strony,tryb;
</syntaxhighlight>
Wartość '''trybu''' może przyjmować jeden z czterech wartości naturalnych, tzn. od: {{Code|1}}, do: {{Code|4}}, w takim wypadku, gdy jest informacja o książce danego artykułu, w bazie rozdziałów i artykułów, dla niego. A w przypadku przeciwnym dla danej strony, gdy artykuł jest bieżącej książki, to od: {{Code|1}}, do: {{Code|3}}.
----
Informacja o książce jest taka, na jaką wskazuje opis w module dokumentacji modułów, na stronie: {{lr2|Moduły/StronicowyParser/SpisTreści}}.
== {{Śródtytuł|p.ObliczeniaInformacje}}{{Code|p.ObliczeniaInformacje}} ==
Funkcja zbiera w zmiennej: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{Patrz|tab_artykul}}, elementy przy pomocy warunku zbierającego i tworzącego:
<syntaxhighlight lang="lua">
table.insert(self.tab_artykul, (nazwa or przekierowanie or pelna_nazwa_ksiazki) and {artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki,} or artykul);
</syntaxhighlight>
Te elementy są zbierane przez iterator: {{LinkŚródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji|StronicowyParser/Potrzebne/Tom V}} - jeśli ten iterator nie istnieje, to zwracana jest wartość nilowa, poprzez iterację po elementach:
<syntaxhighlight lang="lua">
for artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki in iterator do
</syntaxhighlight>
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ObliczeniaInformacje(self,frame)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja ma takie same parametry jak funkcja, dla której dotyczą parametry: {{LinkZobaczTeż|parametry-p.AnalizujArgumentySzablonu|StronicowyParser/Potrzebne/Tom III}}. | komórka1 = tak
}}
Funkcja zawsze zwraca wartość prawdziwą.
== {{Śródtytuł|p.UsuwanieElementowePoziomoweZTablicy}}{{Code|p.UsuwanieElementowePoziomoweZTablicy}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
aoiy9te1do4l5u1hza01t30uv8ublbi
560312
560311
2026-10-29T17:19:47Z
Persino
2851
/* {{Śródtytuł|p.UsuwanieElementowePoziomoweZTablicy}}{{Code|p.UsuwanieElementowePoziomoweZTablicy}} */
560312
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.OdpowiednikNaPrzemianArtykularnychStronWoluminu}}{{Code|p.OdpowiednikNaPrzemianArtykularnychStronWoluminu}} ==
Funkcja wykorzystuje do iteracji iterator funkcja zwracaną przez: {{LinkŚródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji|StronicowyParser/Potrzebne/Tom V}}. Tą funkcję zwracaną przez to uruchamiany w każdym obiegu iteracji przez instrukcję pętlową funkcji bezparametrowej: {{Code|iterator}} {{Patrz|iterator}}:
<syntaxhighlight lang="lua">
for nazwa_artykulu_w_bazie,nazwa,przekierowanie_w_bazie,pelna_nazwa_ksiazki in iterator do for nazwa_artykulu_w_bazie,nazwa,przekierowanie_w_bazie,pelna_nazwa_ksiazki in iterator do
</syntaxhighlight>
Funkcja liczy odpowiednik adresowy nieprzekierowaniowy, gdy to liczymy dany artykuł, który jest przekierowaniem, to wtedy jest zwracane, na co on wskazuje, artykuł, który nie jest przekierowaniem. Funkcja też sprawdzam którym typ przypadku rozważamy, dostępne typy:
{{GridTabela|klasa=gridtable dwukolumna-tytułowa |liczba wierszy=4|liczba kolumn=2
| nagłówek 1 = Tryb | nagłówek 2 = Opis
| komórka 1_1 = {{Code|1}} | komórka 1_2 = Mamy, gdy artykuł jest przekierowaniem danej książki.
| komórka 2_1 = {{Code|2}} | komórka 2_2 = Mamy, gdy strona główna bieżącej książki jest przekierowaniem do innej książki.
| komórka 3_1 = {{Code|3}} | komórka 3_2 = Gdy dana strona artykułu książki, ale z adresem książki w bazie rozdziałów i artykułu, gdy istnieje, wtedy artykuł książki nie jest przekierowaniem, to wtedy nie jest sprawdzane, czy istnieje, tylko wtedy funkcja zwraca tą drugą wartość taką.
| komórka 4_1 = {{Code|4}} | komórka 4_2 = Jak powyżej, tylko że ten artykuł nie istnieje. Przeciwnie w takim przypadku w sytuacji braku informacji o książce w bazie, tzn. mamy artykuł dla danej książki, jej bieżącej, dla danego artykułu, on przyjmuje nie tą, tylko wtedy wartość tą powyższą.
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tab_lista_artykulow_w_ksiazce_spis,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,co_ma_wykrywac)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|tab_lista_artykulow_w_ksiazce_spis}}| _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis|StronicowyParser/Potrzebne/Tom V}}.
| 2 = {{Code|nazwa_glownego_spisu}} | _2 = Jak w: {{LinkPatrz|spis_tresci|StronicowyParser/Potrzebne/Tom V}}.
| 3 = {{Code|tab_inne_spisy}} | _3 = Jak w: {{LinkPatrz|inne_spisy|StronicowyParser/Potrzebne/Tom V}}.
| 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, i {{Code|nazwa_ksiazki}} | _4 = Te zmienne są kolejno zdefiniowane, jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Potrzebne/Tom III}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Potrzebne/Tom III}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Potrzebne/Tom III}}.
| 5 = {{Code|nazwa_artykulu}} | _5 = Jak w: {{LinkPatrz|nazwa_artykulu|StronicowyParser/Potrzebne/Tom III}}.
| 6 = {{Code|co_ma_wykrywac}} | _6 = Zmienna sterująca w warunku (instrukcji warunkowej), czy ma wyświetlać wyniki w przypadku innych książek w spisie, gdy to nie jest artykuł danej książki, w dla bieżącego podręcznika, wartość przeciwna niż prawdziwa, powoduje, że jest wyświetlany w ogóle wynik.
}}
Funkcja zwraca wartości, przypadku gdy ma zrzucać jakąś wartość:
<syntaxhighlight lang="lua">
return nazwa_artykulu_strony,tryb;
</syntaxhighlight>
Wartość '''trybu''' może przyjmować jeden z czterech wartości naturalnych, tzn. od: {{Code|1}}, do: {{Code|4}}, w takim wypadku, gdy jest informacja o książce danego artykułu, w bazie rozdziałów i artykułów, dla niego. A w przypadku przeciwnym dla danej strony, gdy artykuł jest bieżącej książki, to od: {{Code|1}}, do: {{Code|3}}.
----
Informacja o książce jest taka, na jaką wskazuje opis w module dokumentacji modułów, na stronie: {{lr2|Moduły/StronicowyParser/SpisTreści}}.
== {{Śródtytuł|p.ObliczeniaInformacje}}{{Code|p.ObliczeniaInformacje}} ==
Funkcja zbiera w zmiennej: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{Patrz|tab_artykul}}, elementy przy pomocy warunku zbierającego i tworzącego:
<syntaxhighlight lang="lua">
table.insert(self.tab_artykul, (nazwa or przekierowanie or pelna_nazwa_ksiazki) and {artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki,} or artykul);
</syntaxhighlight>
Te elementy są zbierane przez iterator: {{LinkŚródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji|StronicowyParser/Potrzebne/Tom V}} - jeśli ten iterator nie istnieje, to zwracana jest wartość nilowa, poprzez iterację po elementach:
<syntaxhighlight lang="lua">
for artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki in iterator do
</syntaxhighlight>
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ObliczeniaInformacje(self,frame)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja ma takie same parametry jak funkcja, dla której dotyczą parametry: {{LinkZobaczTeż|parametry-p.AnalizujArgumentySzablonu|StronicowyParser/Potrzebne/Tom III}}. | komórka1 = tak
}}
Funkcja zawsze zwraca wartość prawdziwą.
== {{Śródtytuł|p.UsuwanieElementowePoziomoweZTablicy}}{{Code|p.UsuwanieElementowePoziomoweZTablicy}} ==
Funkcja usuwa wszystkie elementy z tablicy: {{Code|tablica}} {{LinkPatrz|tablica}}, innych niż numer: {{Code|numer}} {{LinkPatrz|numer}}, do tego służy funkcja: {{LinkŚródtytuł|p.PoziomAdresu|StronicowyParser/Potrzebne/Tom II}}. Funkcja też zwraca drugi parametr równy liczbie usuniętych elementów z niej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieElementowePoziomoweZTablicy(tablica,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|tablica}} {{Patrz|tablica}} | _1 = Tablica tablic z pierwszym elementem, który jest artykułem.
| 2 = {{Code|numer}} {{Patrz|numer}} | _2 = Poziom, dla którego ma pozostawiać elementy w tablicy powyżej.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ky5drfz5zxw0v94cnmvr9571wlrrki6
560313
560312
2026-10-29T17:33:46Z
Persino
2851
/* {{Śródtytuł|p.UsuwanieElementowePoziomoweZTablicy}}{{Code|p.UsuwanieElementowePoziomoweZTablicy}} */
560313
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.OdpowiednikNaPrzemianArtykularnychStronWoluminu}}{{Code|p.OdpowiednikNaPrzemianArtykularnychStronWoluminu}} ==
Funkcja wykorzystuje do iteracji iterator funkcja zwracaną przez: {{LinkŚródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji|StronicowyParser/Potrzebne/Tom V}}. Tą funkcję zwracaną przez to uruchamiany w każdym obiegu iteracji przez instrukcję pętlową funkcji bezparametrowej: {{Code|iterator}} {{Patrz|iterator}}:
<syntaxhighlight lang="lua">
for nazwa_artykulu_w_bazie,nazwa,przekierowanie_w_bazie,pelna_nazwa_ksiazki in iterator do for nazwa_artykulu_w_bazie,nazwa,przekierowanie_w_bazie,pelna_nazwa_ksiazki in iterator do
</syntaxhighlight>
Funkcja liczy odpowiednik adresowy nieprzekierowaniowy, gdy to liczymy dany artykuł, który jest przekierowaniem, to wtedy jest zwracane, na co on wskazuje, artykuł, który nie jest przekierowaniem. Funkcja też sprawdzam którym typ przypadku rozważamy, dostępne typy:
{{GridTabela|klasa=gridtable dwukolumna-tytułowa |liczba wierszy=4|liczba kolumn=2
| nagłówek 1 = Tryb | nagłówek 2 = Opis
| komórka 1_1 = {{Code|1}} | komórka 1_2 = Mamy, gdy artykuł jest przekierowaniem danej książki.
| komórka 2_1 = {{Code|2}} | komórka 2_2 = Mamy, gdy strona główna bieżącej książki jest przekierowaniem do innej książki.
| komórka 3_1 = {{Code|3}} | komórka 3_2 = Gdy dana strona artykułu książki, ale z adresem książki w bazie rozdziałów i artykułu, gdy istnieje, wtedy artykuł książki nie jest przekierowaniem, to wtedy nie jest sprawdzane, czy istnieje, tylko wtedy funkcja zwraca tą drugą wartość taką.
| komórka 4_1 = {{Code|4}} | komórka 4_2 = Jak powyżej, tylko że ten artykuł nie istnieje. Przeciwnie w takim przypadku w sytuacji braku informacji o książce w bazie, tzn. mamy artykuł dla danej książki, jej bieżącej, dla danego artykułu, on przyjmuje nie tą, tylko wtedy wartość tą powyższą.
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tab_lista_artykulow_w_ksiazce_spis,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,co_ma_wykrywac)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|tab_lista_artykulow_w_ksiazce_spis}}| _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis|StronicowyParser/Potrzebne/Tom V}}.
| 2 = {{Code|nazwa_glownego_spisu}} | _2 = Jak w: {{LinkPatrz|spis_tresci|StronicowyParser/Potrzebne/Tom V}}.
| 3 = {{Code|tab_inne_spisy}} | _3 = Jak w: {{LinkPatrz|inne_spisy|StronicowyParser/Potrzebne/Tom V}}.
| 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, i {{Code|nazwa_ksiazki}} | _4 = Te zmienne są kolejno zdefiniowane, jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Potrzebne/Tom III}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Potrzebne/Tom III}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Potrzebne/Tom III}}.
| 5 = {{Code|nazwa_artykulu}} | _5 = Jak w: {{LinkPatrz|nazwa_artykulu|StronicowyParser/Potrzebne/Tom III}}.
| 6 = {{Code|co_ma_wykrywac}} | _6 = Zmienna sterująca w warunku (instrukcji warunkowej), czy ma wyświetlać wyniki w przypadku innych książek w spisie, gdy to nie jest artykuł danej książki, w dla bieżącego podręcznika, wartość przeciwna niż prawdziwa, powoduje, że jest wyświetlany w ogóle wynik.
}}
Funkcja zwraca wartości, przypadku gdy ma zrzucać jakąś wartość:
<syntaxhighlight lang="lua">
return nazwa_artykulu_strony,tryb;
</syntaxhighlight>
Wartość '''trybu''' może przyjmować jeden z czterech wartości naturalnych, tzn. od: {{Code|1}}, do: {{Code|4}}, w takim wypadku, gdy jest informacja o książce danego artykułu, w bazie rozdziałów i artykułów, dla niego. A w przypadku przeciwnym dla danej strony, gdy artykuł jest bieżącej książki, to od: {{Code|1}}, do: {{Code|3}}.
----
Informacja o książce jest taka, na jaką wskazuje opis w module dokumentacji modułów, na stronie: {{lr2|Moduły/StronicowyParser/SpisTreści}}.
== {{Śródtytuł|p.ObliczeniaInformacje}}{{Code|p.ObliczeniaInformacje}} ==
Funkcja zbiera w zmiennej: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{Patrz|tab_artykul}}, elementy przy pomocy warunku zbierającego i tworzącego:
<syntaxhighlight lang="lua">
table.insert(self.tab_artykul, (nazwa or przekierowanie or pelna_nazwa_ksiazki) and {artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki,} or artykul);
</syntaxhighlight>
Te elementy są zbierane przez iterator: {{LinkŚródtytuł|p.IteratorPoStronachWoluminuEwentualnieWedleAutonawigacji|StronicowyParser/Potrzebne/Tom V}} - jeśli ten iterator nie istnieje, to zwracana jest wartość nilowa, poprzez iterację po elementach:
<syntaxhighlight lang="lua">
for artykul,nazwa,przekierowanie,pelna_nazwa_ksiazki in iterator do
</syntaxhighlight>
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ObliczeniaInformacje(self,frame)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja ma takie same parametry jak funkcja, dla której dotyczą parametry: {{LinkZobaczTeż|parametry-p.AnalizujArgumentySzablonu|StronicowyParser/Potrzebne/Tom III}}. | komórka1 = tak
}}
Funkcja zawsze zwraca wartość prawdziwą.
== {{Śródtytuł|p.UsuwanieElementowePoziomoweZTablicy}}{{Code|p.UsuwanieElementowePoziomoweZTablicy}} ==
Funkcja usuwa wszystkie elementy z tablicy: {{Code|tablica}} {{LinkPatrz|tablica}}, innych niż numer: {{Code|numer}} {{LinkPatrz|numer}}, do tego służy funkcja: {{LinkŚródtytuł|p.PoziomAdresu|StronicowyParser/Potrzebne/Tom II}}. Funkcja też zwraca drugi parametr równy liczbie usuniętych elementów z niej.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.UsuwanieElementowePoziomoweZTablicy(tablica,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|tablica}} {{Patrz|tablica}} | _1 = Tablica, tablic z pierwszym elementem, który jest artykułem.
| 2 = {{Code|numer}} {{Patrz|numer}} | _2 = Poziom, dla którego ma pozostawiać elementy w tablicy powyżej.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6i35z3lofulh0v0764886gwberb39ai
Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom VII
4
64473
560314
559931
2026-10-30T04:48:09Z
Persino
2851
mki
560314
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybirany jest przez funkcję artykuł pomiędzy pierwszym, a ostatnim artykułem, bez nich.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}.
| 3 = {{Code|numer}} | _3 = Jak w: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}.
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów pomiędzy pierwszym a ostatnim artykułem danej książki, ta funkcji parametry ramki posiada takie samo jak w: {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom IV}}.
}}
== {{Śródtytuł|p.LosowaStronaWoluminu}}{{Code|p.LosowaStronaWoluminu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
67x8pelnedhoqkoc8qryqntbzrbggbm
560315
560314
2026-10-30T04:48:59Z
Persino
2851
/* {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} */
560315
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybirany jest przez funkcję artykuł pomiędzy pierwszym, a ostatnim artykułem, bez nich.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}.
| 3 = {{Code|numer}} | _3 = Jak w: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}.
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów pomiędzy pierwszym a ostatnim artykułem danej książki, ta funkcji parametry ramki posiada takie samo jak w: {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
== {{Śródtytuł|p.LosowaStronaWoluminu}}{{Code|p.LosowaStronaWoluminu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5yw44gp8x8p6xje6macjkeadz0wcjxz
560316
560315
2026-10-30T04:54:47Z
Persino
2851
/* {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} */
560316
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybirany jest przez funkcję artykuł pomiędzy pierwszym, a ostatnim artykułem, bez nich.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}.
| 3 = {{Code|numer}} | _3 = Jak w: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}.
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów pomiędzy pierwszym a ostatnim artykułem danej książki, ta funkcji parametry ramki posiada takie samo jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
== {{Śródtytuł|p.LosowaStronaWoluminu}}{{Code|p.LosowaStronaWoluminu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
qgo2ea0j1ghjp8bkh89x8mq5goq25t0
560317
560316
2026-10-30T05:10:56Z
Persino
2851
560317
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł pomiędzy pierwszym, a ostatnim artykułem, bez nich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z niej elementy według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}.
| 3 = {{Code|numer}} | _3 = Jak w: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}.
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów pomiędzy pierwszym a ostatnim artykułem danej książki, ta funkcji parametry ramki posiada takie samo jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
== {{Śródtytuł|p.LosowaStronaWoluminu}}{{Code|p.LosowaStronaWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł ze wszystkich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z niej elementy według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 Funkcja ma te same parametry, co: {{LinkZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}. | komórka1 = tak
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów ze wszystkich danej książki, ta funkcji parametry ramki posiada takie samo jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gfn96r142b38vvg1w2z56o0q68f0ckm
560318
560317
2026-10-30T05:11:36Z
Persino
2851
/* {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} */
560318
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł pomiędzy pierwszym, a ostatnim artykułem, bez nich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z niej elementy według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy|StronicowyParser/Potrzebne/Tom VI}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}.
| 3 = {{Code|numer}} | _3 = Jak w: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}.
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów pomiędzy pierwszym a ostatnim artykułem danej książki, ta funkcji parametry ramki posiada takie samo jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
== {{Śródtytuł|p.LosowaStronaWoluminu}}{{Code|p.LosowaStronaWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł ze wszystkich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z niej elementy według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 Funkcja ma te same parametry, co: {{LinkZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}. | komórka1 = tak
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów ze wszystkich danej książki, ta funkcji parametry ramki posiada takie samo jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rfryj1w18d50522zdtnjsgd2sem2fag
560319
560318
2026-10-30T05:12:02Z
Persino
2851
/* {{Śródtytuł|p.LosowaStronaWoluminu}}{{Code|p.LosowaStronaWoluminu}} */
560319
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł pomiędzy pierwszym, a ostatnim artykułem, bez nich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z niej elementy według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy|StronicowyParser/Potrzebne/Tom VI}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}.
| 3 = {{Code|numer}} | _3 = Jak w: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}.
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów pomiędzy pierwszym a ostatnim artykułem danej książki, ta funkcji parametry ramki posiada takie samo jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
== {{Śródtytuł|p.LosowaStronaWoluminu}}{{Code|p.LosowaStronaWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł ze wszystkich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z niej elementy według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy|StronicowyParser/Potrzebne/Tom VI}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 Funkcja ma te same parametry, co: {{LinkZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}. | komórka1 = tak
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów ze wszystkich danej książki, ta funkcji parametry ramki posiada takie samo jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1y0iud71o2fbohpqqtshrzph3vidv95
560320
560319
2026-10-30T05:13:23Z
Persino
2851
560320
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł pomiędzy pierwszym, a ostatnim artykułem, bez nich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z jej kopii elementy według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy|StronicowyParser/Potrzebne/Tom VI}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}.
| 3 = {{Code|numer}} | _3 = Jak w: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}.
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów pomiędzy pierwszym a ostatnim artykułem danej książki, ta funkcji parametry ramki posiada takie samo jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
== {{Śródtytuł|p.LosowaStronaWoluminu}}{{Code|p.LosowaStronaWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł ze wszystkich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z jej kopii według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy|StronicowyParser/Potrzebne/Tom VI}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 Funkcja ma te same parametry, co: {{LinkZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}. | komórka1 = tak
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów ze wszystkich danej książki, ta funkcji parametry ramki posiada takie samo jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
eiffi4wxlhw0modanurf7fsf6u5ech9
560321
560320
2026-10-30T05:21:53Z
Persino
2851
560321
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł pomiędzy pierwszym, a ostatnim artykułem, bez nich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z jej kopii elementy według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy|StronicowyParser/Potrzebne/Tom VI}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}.
| 3 = {{Code|numer}} | _3 = Jak w: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}.
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów pomiędzy pierwszym a ostatnim artykułem danej książki, ta funkcja ma parametry ramki posiadające takie same, jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
== {{Śródtytuł|p.LosowaStronaWoluminu}}{{Code|p.LosowaStronaWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł ze wszystkich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z jej kopii według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy|StronicowyParser/Potrzebne/Tom VI}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 Funkcja ma te same parametry, co: {{LinkZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}. | komórka1 = tak
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów ze wszystkich danej książki, ta funkcja ma parametry ramki posiadające takie same, jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1hnj4l29zxvlxrgas1ddy9nhgim5oyl
560322
560321
2026-10-30T05:26:06Z
Persino
2851
560322
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł pomiędzy pierwszym, a ostatnim artykułem, bez nich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z jej kopii (kopia jest robiona, generowana przez: {{LinkŚródtytuł|p["KopiujTabelęElementów"]|Parametry/Tom IV}}) elementy według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy|StronicowyParser/Potrzebne/Tom VI}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}.
| 3 = {{Code|numer}} | _3 = Jak w: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}.
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów pomiędzy pierwszym a ostatnim artykułem danej książki, ta funkcja ma parametry ramki posiadające takie same, jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
== {{Śródtytuł|p.LosowaStronaWoluminu}}{{Code|p.LosowaStronaWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł ze wszystkich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z jej kopii (kopia jest robiona, generowana przez: {{LinkŚródtytuł|p["KopiujTabelęElementów"]|Parametry/Tom IV}}) według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy|StronicowyParser/Potrzebne/Tom VI}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 Funkcja ma te same parametry, co: {{LinkZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}. | komórka1 = tak
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów ze wszystkich danej książki, ta funkcja ma parametry ramki posiadające takie same, jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
79tgfjeplii7by8dvtoh5nirmzw81pe
560323
560322
2026-10-30T05:26:36Z
Persino
2851
560323
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}{{Code|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł pomiędzy pierwszym, a ostatnim artykułem, bez nich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z jej kopii (kopia jest robiona, generowana przez: {{LinkŚródtytuł|p["KopiujTabelęElementów"]|Parametry/Tom IV}}) elementy według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy|StronicowyParser/Potrzebne/Tom VI}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}:
{{OpisParametrów
| 1 = {{Code|self}} | _1 = Jak w: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}.
| 2 = {{Code|frame}} | _2 = Jak w: {{Code|frame}} {{LinkPatrz|frame|StronicowyParser/Potrzebne/Tom III}}.
| 3 = {{Code|numer}} | _3 = Jak w: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}.
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów pomiędzy pierwszym a ostatnim artykułem danej książki, ta funkcja ma parametry ramki posiadające takie same, jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
== {{Śródtytuł|p.LosowaStronaWoluminu}}{{Code|p.LosowaStronaWoluminu}} ==
Funkcja na podstawie pierwszego parametru: {{Code|1}} {{LinkPatrz|1|StronicowyParser/Potrzebne/Tom IV}}, który jest transformowany do liczby lub zera, co na podstawie tego wybierany jest przez funkcję artykuł ze wszystkich.
Funkcja wykorzystuje zmienną: {{Code|self}} {{LinkPatrz|self|StronicowyParser/Potrzebne/Tom III}}, o kluczu: {{Code|tab_artykul}} {{LinkPatrz|tab_artykul|StronicowyParser/Potrzebne/Tom VI}}, z której jeżeli numer: {{Code|numer}} {{LinkPatrz|numer|StronicowyParser/Potrzebne/Tom VI}}, jest większy od zera {{Code| > 0}}, to wtedy są usuwane z jej kopii (kopia jest robiona, generowana przez: {{LinkŚródtytuł|p["KopiujTabelęElementów"]|Parametry/Tom IV}}) według: {{LinkŚródtytuł|p.UsuwanieElementowePoziomoweZTablicy|StronicowyParser/Potrzebne/Tom VI}}, inne niż tego numeru, i na podstawie tego wybierane są artykuły.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.LosowaStronaWoluminu(self,frame,numer)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja ma te same parametry, co: {{LinkZobaczTeż|p.LosowaStronaBezPierwszejOrazOstatniejStronyWoluminu}}. | komórka1 = tak
}}
Opis parametrów ramki {{Code|frame}} funkcji tablicy transportu modułu:
{{OpisParametrów
| 1 = Argument do generacji losowej wyboru artykułów ze wszystkich danej książki, ta funkcja ma parametry ramki posiadające takie same, jak w: {{LinkZobaczTeż|frame|StronicowyParser/Potrzebne/Tom IV}}. | komórka1 = tak
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ftllhe95ss6p5bmgmsk99q79nz2ksla
Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom VIII
4
64474
560324
559935
2026-10-30T06:51:45Z
Persino
2851
/* {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} */
560324
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{LinkPatrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
r3ybk996ubef6hsu152v2gyox2jczkv
560325
560324
2026-10-30T06:59:30Z
Persino
2851
/* {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} */
560325
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4ll6vydc507sswnodhctfc8ixqa25ut
560327
560325
2026-10-30T07:40:29Z
Persino
2851
/* {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} */
560327
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
Funkcja do dekodowania i rozwijania nazwy szablonu, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione,a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} | _1 = -
| 2 = {{Code|nazwa_modulu}} | _2 = -
| 3 = {{Code|nazwa_modulu_szablonowa}} | _3 = -
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _4 = -
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _5 = -
| 6 = {{Code|czy_uwzgledniac_modyfikatory}} | _6 = -
| 7 = {{Code|czy_z_kluczem}} | _7 = -
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
o698gx86rvwwr64mjmafcmstpppdn9u
560328
560327
2026-10-30T07:48:16Z
Persino
2851
/* {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} */
560328
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione,a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = -
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = -
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = -
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = -
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = -
| 6 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _6 = -
| 7 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _7 = -
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gkq5uwkrm5c4e11tdyly09s6ca23ptv
560329
560328
2026-10-30T07:49:04Z
Persino
2851
/* {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} */
560329
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione,a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = -
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = -
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = -
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = -
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = -
| 6 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _6 = -
| 7 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _7 = -
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3vqfjxsvw36ycbh5z79s1gfyuuaoba6
560330
560329
2026-10-30T07:49:19Z
Persino
2851
/* {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} */
560330
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = -
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = -
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = -
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = -
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = -
| 6 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _6 = -
| 7 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _7 = -
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
f4adsg0m8p4o9751lupcm2h9uqia8sd
560331
560330
2026-10-30T08:25:08Z
Persino
2851
/* {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} */
560331
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, lementów na czynnii pierwsze.
| 6 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _6 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 7 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _7 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
s11359mu91gc7jhrs3qjw4ub0tq9jfr
560332
560331
2026-10-30T08:28:41Z
Persino
2851
/* {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} */
560332
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
| 6 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _6 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 7 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _7 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1w345vny6ojjqslifrqully442mwe7b
560333
560332
2026-10-30T09:01:00Z
Persino
2851
/* {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} */
560333
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji przed wydzieleniem opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle przed: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
| 6 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _6 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 7 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _7 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
58vf403c7f1e8q46bhythjgoovvogw4
560334
560333
2026-10-30T09:20:49Z
Persino
2851
/* {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} */
560334
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
}}
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji przed wydzieleniem opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle przed: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
| 6 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _6 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 7 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _7 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
7eeqnoj3k6pngsiuorigbcdzoi5ffee
560335
560334
2026-10-30T09:22:44Z
Persino
2851
/* {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} */
560335
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
}}
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji przed wydzieleniem opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle przed: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja przyjmuje te same parametry, co: {{LinkZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}.| komórka1 = tak
| 2 = Parametry dadatkowe: | nagłówek2 = tak
| 3 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _3 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 4 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _4 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
k6hx1i6zjjtwxt1zeygoh95j4qcz73e
560336
560335
2026-10-30T09:28:29Z
Persino
2851
/* {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} */
560336
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
{{Śródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|bez preprocess=tak|klucz=tak|klucz2=tak|tekst={{#if:{{{klucz|}}}|
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji {{#if:{{{klucz2|}}}|po wydzieleniu|przed wydzieleniem}} opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle {{#if:{{{klucz2|}}}|przed|po}}: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
| tak}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
}}
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji przed wydzieleniem opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle przed: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja przyjmuje te same parametry, co: {{LinkZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}.| komórka1 = tak
| 2 = Parametry dadatkowe: | nagłówek2 = tak
| 3 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _3 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 4 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _4 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0srz5bewdr5w7s81l0ip5jy563wg395
560337
560336
2026-10-30T09:29:17Z
Persino
2851
/* {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} */
560337
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
{{Śródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|bez preprocess=tak|klucz=tak|klucz2=tak|tekst={{#if:{{{klucz|}}}|
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji {{#if:{{{klucz2|}}}|po wydzieleniu|przed wydzieleniem}} opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle {{#if:{{{klucz2|}}}|przed|po}}: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
| tak}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
}}
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
{{PobierzŚródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|klucz=tak|klucz2=}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja przyjmuje te same parametry, co: {{LinkZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}.| komórka1 = tak
| 2 = Parametry dadatkowe: | nagłówek2 = tak
| 3 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _3 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 4 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _4 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
99qoi2lbs2ovv0rukolrcc8x1y1rsxs
560338
560337
2026-10-30T09:40:59Z
Persino
2851
/* {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} */
560338
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
{{Śródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|bez preprocess=tak|klucz=tak|klucz2=tak|klucz3=tak|tekst={{#if:{{{klucz|}}}|
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji {{#if:{{{klucz2|}}}|po wydzieleniu|przed wydzieleniem}} opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle {{#if:{{{klucz2|}}}|przed|po}}: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
{{#if:{{{klucz3|}}}|
; Kroki postępowania funkcji{{dk}}
Funkcja używa funkcji: {{Code|{{sr|#p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych|p=Szablonowe}}}} lub {{Code|{{sr|#p.CzyModyfikatoryCharakterystyczneSzablonowe|p=Szablonowe}}}}, wtedy jeśli któraś z nich coś wykryła, to wtedy funkcja zwraca wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Dalej jest wykonywana: {{LinkŚródtytuł|p.DekodowanieNazwySzablonu}}, a jeśli ona nic nie zrobiła, wtedy druki parametr wskazuje na niepowodzenie, w takim wypadku wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Jeśli wszystko poszło dobrze, to wtedy funkcja zwraca zmodyfikowany lub nienaruszony, jeśli w nim nie ma żadnych kodów, wynik z drugim parametrem prawdziwym:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
Drugi parametr oznacza tutaj, że jakiś wynik mamy.
}}
| tak}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
}}
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
{{PobierzŚródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|klucz=tak|klucz2=}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja przyjmuje te same parametry, co: {{LinkZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}.| komórka1 = tak
| 2 = Parametry dadatkowe: | nagłówek2 = tak
| 3 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _3 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 4 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _4 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
n67lf9imwdspuqjtfapzihp4t4z96zn
560339
560338
2026-10-30T09:41:48Z
Persino
2851
/* {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} */
560339
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
{{Śródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|bez preprocess=tak|klucz=tak|klucz2=tak|tekst={{#if:{{{klucz|}}}|
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji {{#if:{{{klucz2|}}}|po wydzieleniu|przed wydzieleniem}} opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle {{#if:{{{klucz2|}}}|przed|po}}: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
| tak}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
}}
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
{{PobierzŚródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|klucz=tak|klucz2=}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja przyjmuje te same parametry, co: {{LinkZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}.| komórka1 = tak
| 2 = Parametry dadatkowe: | nagłówek2 = tak
| 3 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _3 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 4 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _4 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
99qoi2lbs2ovv0rukolrcc8x1y1rsxs
560340
560339
2026-10-30T09:42:05Z
Persino
2851
/* {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} */
560340
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
{{Śródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|bez preprocess=tak|klucz=tak|klucz2=tak|tekst={{#if:{{{klucz|}}}|
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji {{#if:{{{klucz2|}}}|po wydzieleniu|przed wydzieleniem}} opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle {{#if:{{{klucz2|}}}|przed|po}}: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
| tak}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
}}
; Kroki postępowania funkcji{{dk}}
Funkcja używa funkcji: {{Code|{{sr|#p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych|p=Szablonowe}}}} lub {{Code|{{sr|#p.CzyModyfikatoryCharakterystyczneSzablonowe|p=Szablonowe}}}}, wtedy jeśli któraś z nich coś wykryła, to wtedy funkcja zwraca wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Dalej jest wykonywana: {{LinkŚródtytuł|p.DekodowanieNazwySzablonu}}, a jeśli ona nic nie zrobiła, wtedy druki parametr wskazuje na niepowodzenie, w takim wypadku wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Jeśli wszystko poszło dobrze, to wtedy funkcja zwraca zmodyfikowany lub nienaruszony, jeśli w nim nie ma żadnych kodów, wynik z drugim parametrem prawdziwym:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
Drugi parametr oznacza tutaj, że jakiś wynik mamy.
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
{{PobierzŚródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|klucz=tak|klucz2=}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja przyjmuje te same parametry, co: {{LinkZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}.| komórka1 = tak
| 2 = Parametry dadatkowe: | nagłówek2 = tak
| 3 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _3 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 4 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _4 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
o33sthr92mb5q6hvnnqcx63s761hbro
560341
560340
2026-10-30T09:44:35Z
Persino
2851
/* {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} */
560341
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
{{Śródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|bez preprocess=tak|klucz=tak|klucz2=tak|tekst={{#if:{{{klucz|}}}|
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji {{#if:{{{klucz2|}}}|po wydzieleniu|przed wydzieleniem}} opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle {{#if:{{{klucz2|}}}|przed|po}}: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
| tak}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
}}
; Kroki postępowania funkcji{{dk}}
Funkcja używa funkcji: {{Code|{{sr|#p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych|p=Szablonowe}}}} lub {{Code|{{sr|#p.CzyModyfikatoryCharakterystyczneSzablonowe|p=Szablonowe}}}}, wtedy jeśli któraś z nich coś wykryła, to wtedy funkcja zwraca wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Dalej, jeśli funkcja ominęła powyższy krok instrukcji, jest wykonywana: {{LinkŚródtytuł|p.DekodowanieNazwySzablonu}}, a jeśli ona nic nie zrobiła, ale nazwa szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, zawiera jakiś kod, wtedy druki parametr wskazuje na niepowodzenie, w takim wypadku wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Jeśli wszystko poszło dobrze, to wtedy funkcja zwraca zmodyfikowany lub nienaruszony, jeśli w nim nie ma żadnych kodów, wynik z drugim parametrem prawdziwym:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
Drugi parametr oznacza tutaj, że jakiś wynik mamy.
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
{{PobierzŚródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|klucz=tak|klucz2=}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja przyjmuje te same parametry, co: {{LinkZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}.| komórka1 = tak
| 2 = Parametry dadatkowe: | nagłówek2 = tak
| 3 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _3 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 4 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _4 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rlwieprs5zuiykwivfwddx8ubnzw82p
560342
560341
2026-10-30T10:13:32Z
Persino
2851
/* {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} */
560342
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
{{Śródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|bez preprocess=tak|klucz=tak|klucz2=tak|tekst={{#if:{{{klucz|}}}|
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji {{#if:{{{klucz2|}}}|po wydzieleniu|przed wydzieleniem}} opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle {{#if:{{{klucz2|}}}|przed|po}}: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
| tak}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
}}
; Kroki postępowania funkcji{{dk}}
Funkcja używa funkcji: {{Code|{{sr|#p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych|p=Szablonowe}}}} lub {{Code|{{sr|#p.CzyModyfikatoryCharakterystyczneSzablonowe|p=Szablonowe}}}}, wtedy jeśli któraś z nich coś wykryła, to wtedy funkcja zwraca wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Dalej, jeśli funkcja ominęła powyższy krok instrukcji, jest wykonywana: {{LinkŚródtytuł|p.DekodowanieNazwySzablonu}}, a jeśli ona nic nie zrobiła, ale nazwa szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, zawiera jakiś kod, wtedy druki parametr wskazuje na niepowodzenie, w takim wypadku wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Jeśli wszystko poszło dobrze, to wtedy funkcja zwraca zmodyfikowany lub nienaruszony, jeśli w nim nie ma żadnych kodów, wynik z drugim parametrem prawdziwym:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
Drugi parametr oznacza tutaj, że jakiś wynik mamy.
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
Funkcja do dekodowania tekstu i rozwijania go funkcją: {{LzLua|frame:preprocess}}. Funkcja {{lk|szablony stronicowe}} zamienia na kod symboliczny, a inne już są w postaci normalnych wywołań, całość jest rozwijana tą funkcją. Funkcja używa podwójnego uruchamiania swoich funkcji, najpierw zbiera parametry, dzięki którym ma być uruchamiana, a później ona tak zwraca inną funkcją, którą dekodujemy właściwie tekst. W tym drugim działa: {{LinkŚródtytuł|p.DekodowanieTekstuNazwLinku|StronicowyParser/Pomocne}}, której dwa zwrócone wynik za jednym razem są zwracane przez tą funkcję zwracaną.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieTekstu(nazwa_modulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci)
return function(tekst,tryb,czy_nie_odstepy,drugi_wynik,czy_drugi_wynik_przetworzony)
...
end;
end;
</syntaxhighlight>
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
{{PobierzŚródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|klucz=tak|klucz2=}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja przyjmuje te same parametry, co: {{LinkZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}.| komórka1 = tak
| 2 = Parametry dadatkowe: | nagłówek2 = tak
| 3 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _3 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 4 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _4 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9lohlg6zkdtsjhzp19zcsy0h7m1utfv
560344
560342
2026-10-30T10:56:21Z
Persino
2851
/* {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} */
560344
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
{{Śródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|bez preprocess=tak|klucz=tak|klucz2=tak|tekst={{#if:{{{klucz|}}}|
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji {{#if:{{{klucz2|}}}|po wydzieleniu|przed wydzieleniem}} opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle {{#if:{{{klucz2|}}}|przed|po}}: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
| tak}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
}}
; Kroki postępowania funkcji{{dk}}
Funkcja używa funkcji: {{Code|{{sr|#p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych|p=Szablonowe}}}} lub {{Code|{{sr|#p.CzyModyfikatoryCharakterystyczneSzablonowe|p=Szablonowe}}}}, wtedy jeśli któraś z nich coś wykryła, to wtedy funkcja zwraca wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Dalej, jeśli funkcja ominęła powyższy krok instrukcji, jest wykonywana: {{LinkŚródtytuł|p.DekodowanieNazwySzablonu}}, a jeśli ona nic nie zrobiła, ale nazwa szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, zawiera jakiś kod, wtedy druki parametr wskazuje na niepowodzenie, w takim wypadku wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Jeśli wszystko poszło dobrze, to wtedy funkcja zwraca zmodyfikowany lub nienaruszony, jeśli w nim nie ma żadnych kodów, wynik z drugim parametrem prawdziwym:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
Drugi parametr oznacza tutaj, że jakiś wynik mamy.
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
Funkcja do dekodowania tekstu i rozwijania go funkcją: {{LzLua|frame:preprocess}}. Funkcja {{lk|szablony stronicowe}} zamienia na kod symboliczny, a inne już są w postaci normalnych wywołań, całość jest rozwijana tą funkcją. Funkcja używa podwójnego uruchamiania swoich funkcji, najpierw zbiera parametry, dzięki którym ma być uruchamiana, a później ona tak zwraca inną funkcją, którą dekodujemy właściwie tekst. W tym drugim działa: {{LinkŚródtytuł|p.DekodowanieTekstuNazwLinku|StronicowyParser/Pomocne}}, której dwa zwrócone wynik za jednym razem są zwracane przez tą funkcję zwracaną.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieTekstu(nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci)
return function(tekst,tryb,czy_nie_odstepy,drugi_wynik,czy_drugi_wynik_przetworzony)
...
end;
end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} | _1 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 2 = {{Code|nazwa_modulu_szablonowa}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
| 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|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, i {{Code|nazwa_ksiazki}} | _5 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Potrzebne/Tom III}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Potrzebne/Tom III}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Potrzebne/Tom III}}.
| 6 = {{Code|nazwa_artykulu}} | _6 = Jak w: {{LinkPatrz|nazwa_artykulu|StronicowyParser/Potrzebne/Tom III}}.
}}
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
{{PobierzŚródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|klucz=tak|klucz2=}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja przyjmuje te same parametry, co: {{LinkZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}.| komórka1 = tak
| 2 = Parametry dadatkowe: | nagłówek2 = tak
| 3 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _3 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 4 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _4 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
bju6k38qz04lg0cins9nal09m86cqdu