Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.46.0-wmf.24
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
Moduł:Pudełko
828
42178
540294
540284
2026-04-22T19:37:02Z
Persino
2851
540294
Scribunto
text/plain
local p={};
function p.CzyNiepoprawnaNazwa(nazwa_jednostki)
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+);");
end;
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
end;
p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
end;
p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
end;
p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i)
end;
p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
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");
end;
p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
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");
end;
p["Pełna nazwa dyskusji jednostki"]=function(frame,i)
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");
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,liczba_numer_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;
end;
p["Pełna nazwa przedmiotowa jednostki"]=function(frame,i)
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");
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,liczba_numer_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;
end;
p["Pełna nazwa jednostki"]=function(frame,i)
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");
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,liczba_numer_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;
end;
p["Pełna nazwa dyskusji jednostki 2"]=function(frame,i)
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");
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,liczba_numer_jednostki);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki);
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
end;
p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,i)
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");
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,liczba_numer_jednostki);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki);
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
end;
p["Pełna nazwa jednostki 2"]=function(frame,i)
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");
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,liczba_numer_jednostki);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki);
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
end;
p["Pełna nazwa dyskusji jednostki 3"]=function(frame,i)
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");
local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numer_jednostki);
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
end;
p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,i)
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");
local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numer_jednostki);
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
end;
p["Pełna nazwa jednostki 3"]=function(frame,i)
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");
local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numer_jednostki);
if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end;
end;
p["Nazwa jednostki"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Nazwa_jednostki(frame,i);
end;
p["Nazwa jednostki 2"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil);
end;
p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa");
end;
p["Nazwa dyskusji jednostki 2"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja");
end;
p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
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");
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,1);
end;
p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
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");
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1);
end;
p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
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");
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1);
end;
p["Nazwa jednostki 3"]=function(frame,i)
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");
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2);
end;
p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)
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");
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,2);
end;
p["Nazwa dyskusji jednostki 3"]=function(frame,i)
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");
return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,2);
end;
p["Typ jednostki"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0);
end;
p["Typ jednostki 2"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,1);
end;
p["Typ jednostki 3"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,nil);
end;
p["Przedmiotowy typ jednostki"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Typ_jednostki(frame, 1,i,0);
end;
p["Przedmiotowy typ jednostki 2"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Typ_jednostki(frame, 1,i,1);
end;
p["Przedmiotowy typ jednostki 3"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Typ_jednostki(frame, 1,i,nil);
end;
p["Dyskusyjny typ jednostki"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0);
end;
p["Dyskusyjny typ jednostki 2"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Typ_jednostki(frame, 2,i,1);
end;
p["Dyskusyjny typ jednostki 3"]=function(frame,i)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Typ_jednostki(frame, 2,i,nil);
end;
p["Cecha pudełka"] = function(frame)
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
return pudelko_potrzebne_modul.Cecha_kontenerowa_szablonowa(frame,"Błędy pudełka");
end;
p["Przedmiotowa cecha pudełka"] = function(frame)
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
return pudelko_potrzebne_modul.Cecha_kontenerowa_szablonowa(frame,"Przedmiotowe błędy pudełka");
end;
p["Dyskusyjna cecha pudełka"] = function(frame)
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
return pudelko_potrzebne_modul.Cecha_kontenerowa_szablonowa(frame,"Dyskusyjne błędy pudełka");
end;
p["Ogólne pudełko"]= function(frame)
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
return pudelko_potrzebne_modul.Generalny_kontener_szablonowy(frame);
end;
p["Tekst pudełka"] = function (frame)
return frame.args["tekst"];
end;
p["Błędy pudełka"]=function(frame)
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
return pudelko_potrzebne_modul.Problemy_kontenerowe_szablonowe(frame,0);
end;
p["Przedmiotowe błędy pudełka"]=function(frame)
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
return pudelko_potrzebne_modul.Problemy_kontenerowe_szablonowe(frame,1);
end;
p["Dyskusyjne błędy pudełka"]=function(frame)
local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne");
return pudelko_potrzebne_modul.Problemy_kontenerowe_szablonowe(frame,2);
end;
p["Nazwa strony głównej projektu"]=function(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local i=(numer_jednostki)and tonumber(numer_jednostki) or 0;
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
local kod_jezyka,kod_projektu=pudelko_pomocne_modul.Wikikody_kontenera(frame,i);
return pudelko_pomocne_modul.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu)
or pudelko_pomocne_modul.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu);
end;
p["Nazwa strony głównej dla dzieci projektu"]=function(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local i=(numer_jednostki)and tonumber(numer_jednostki) or 0;
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
local kod_jezyka,kod_projektu=pudelko_pomocne_modul.Wikikody_kontenera(frame,i);
return pudelko_pomocne_modul.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka)
or pudelko_pomocne_modul.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka);
end;
p["Kod języka"]=function(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local i=(numer_jednostki)and tonumber(numer_jednostki) or 0;
local pudelko_modul=require("Module:Pudełko");
local wartosc_domyslna=pudelko_modul["Kod języka tego projektu"]();
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Kod_jezyka(frame,i,wartosc_domyslna);
end;
p["Kod projektu"]=function(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local i=(numer_jednostki)and tonumber(numer_jednostki) or 0;
local pudelko_modul=require("Module:Pudełko");
local wartosc_domyslna=pudelko_modul["Kod projektu tego projektu"]();
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Kod_projektu(frame,i,wartosc_domyslna);
end;
p["Klucz projektu"]=function(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local i=(numer_jednostki)and tonumber(numer_jednostki) or 0;
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Klucz_projektu(frame,i);
end;
p["Inny niż język bieżący wiki"]=function(frame)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Analiza_interwiki_czy_projekt_aktualny(frame,true,false);
end;
p["Inne niż lokalne wiki"]=function(frame)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Analiza_interwiki_czy_projekt_aktualny(frame,false,true);
end;
p["Inne niż bieżące wiki"]=function(frame)
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Analiza_interwiki_czy_projekt_aktualny(frame,true,true);
end;
p["Podano parametry nienazwane"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
for i,_ in pairs(args)do
if(type(i)=="number")then return "tak";end;
end;
return;
end;
p["Podano parametry numerowane"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
for i,_ in ipairs(args)do
return "tak";
end;
return;
end;
p["Podano parametry nazwane"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
for name,_ in pairs(args)do
if(type(name)=="string")then
return "tak";
end;
end;
return;
end;
p["Kod projektu tego projektu"]=function(frame)
return "b";
end;
p["Kod języka tego projektu"]=function(frame)
return "pl"
end;
p["Klucz projektu tego projektu"]=function(frame)
local pudelko_modul=require("Module:Pudełko");
return pudelko_modul["Kod języka tego projektu"](frame)..":"..pudelko_modul["Kod projektu tego projektu"](frame);
end;
p["Strona główna tego projektu"] = function(frame)
local komunikat = mw.message.new('Mainpage', '');
if(not komunikat:exists())then return "Wikibooks:Strona główna";end;
local zawartosc_komunikatu=komunikat:plain();
zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu);
return zawartosc_komunikatu;
end;
p["Strona główna dla dzieci tego projektu"] = function(frame)
return "Wikijunior:Strona główna";
end;
p["Nazwa strony głównej dla dzieci projektu 2"] = function(frame)
local args=frame and (frame.args or frame) or {};
local kod_jezyka=args[1];
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka);
end;
p["Nazwa strony głównej projektu 2"] = function(frame)
local args=frame and (frame.args or frame) or {};
local kod_jezyka=args[1];
local kod_projektu=args[2];
local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
return pudelko_pomocne_modul.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu);
end;
return p;
cju0yv3xzkmb89jcm6ii218ilxt4hgn
Moduł:Pudełko/Pomocne
828
56499
540286
540282
2026-04-22T12:01:24Z
Persino
2851
540286
Scribunto
text/plain
local p={};
function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu)
local strona=require("Module:Pudełko")["Strona główna tego projektu"]();
local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu};
if(odpowiednik_strony)then
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
else
local pudelko_modul=require("Module:Pudełko");
if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then
return strona;
else
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu]
or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu];
return czy_w_wikidanych and "Main Page" or nil;
end;
end;
end;
function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka)
local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"]();
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end;
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu};
if(odpowiednik_strony)then
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,};
else
return "Wikijunior";
end;
end;
function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu)
local pf=frame.getParent and frame:getParent() or {args={}};
local strona_glowna_projektu;
if(i~=0)then
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"]();
if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then
strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
else
strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i])
end;
else
strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
end;
local parametry_modul=require("Module:Parametry");
return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil);
end;
function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka)
local pf=frame.getParent and frame:getParent() or {args={}};
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_dla_dzieci;
if(i~=0)then
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
if(kod_jezyka==kod_jezyka_tego_projektu)then
strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
else
strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i])
end;
else
strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
end;
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local parametry_modul=require("Module:Parametry");
return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil);
end;
function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu)
local nazwa_przestrzeni_nazw_blad;
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(normmalna_przedmiotwa_dyskusji==0)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(normmalna_przedmiotwa_dyskusji==1)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(normmalna_przedmiotwa_dyskusji==2)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
else
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
end;
return nazwa_przestrzeni_nazw_blad
end;
function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki)
local pf=frame.getParent and frame:getParent() or {args={}};
local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki);
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local czy_blad_nazwy_przestrzeni_nazw;
if(kod_liczbowy_przestrzeni_nazw==1)then
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(kod_liczbowy_przestrzeni_nazw==2)then
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
else
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
end;
if(czy_blad_nazwy_przestrzeni_nazw)then
return czy_blad_nazwy_przestrzeni_nazw;
else
if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then
local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]);
if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then
local czy_blad_nazwa_przestrzeni_nazw_alternatywnej;
if(czy_biezaca_wiki)then
czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)";
else
return "(błąd)";
end;
else
local parametry_modul=require("Module:Parametry");
nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",};
if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
return nazwa_przestrzeni_nazw;
else
return "(błąd)";
end;
end;
end;
end;
function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i)
local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i);
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki);
local nazwy_modul=require("Module:Nazwy");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni_nazw_blad;
local parametry_modul=require("Module:Parametry");
if(czy_biezaca_wiki)then
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]();
nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_jednostki)then
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1");
local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$");
if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1");
end;
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]();
end;
else
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true);
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw;
if(not mw.ustring.match(nazwa_jednostki,"^:"))then
if(nazwa_przestrzeni_nazw~="")then
if(czy_biezaca_wiki)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then
local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then
nazwa_przestrzeni_nazw=nazwy_np_modul.Template;
end;
elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then
local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then
nazwa_przestrzeni_nazw=nazwy_np_modul.Module;
end;
end;
else
local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw==template_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==template_prze)then
nazwa_przestrzeni_nazw=template_prze;
end;
elseif(nazwa_przestrzeni_nazw==module_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==module_prze)then
nazwa_przestrzeni_nazw=module_prze;
end;
end;
end;
if(not nazwa_przestrzeni_nazw_blad)then
if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then
local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]);
if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
if(czy_biezaca_wiki)then
local nazwy_modul=require("Module:Nazwy");
local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
return czy_blad_nazwy_przestrzeni_nazw or "(błąd)";
else
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
return nazwa_przestrzeni_nazw_blad2 or "(błąd)";
end;
else
return "(błąd)";
end;
else
local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw);
if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
return wytrimowana_nazwa_przestrzeni_nazw;
else
return "(błąd)";
end;
end;
else
return nazwa_przestrzeni_nazw;
end;
else
return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local nazwa_przestrzeni_nazw=require("Module:Pudełko")["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca)then
return nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw};
else
return nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Kod_jezyka(frame,i,wartosc_domyslna)
local pudelko_modul=require("Module:Pudełko");
if(not i)then return pudelko_modul["Kod języka tego projektu"]();end;
local pf=frame.getParent and frame:getParent() or {args={}};
if(i==0)then
return pudelko_modul["Kod języka tego projektu"]();
elseif(i==1)then
local parametry_modul=require("Module:Parametry");
local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"]
return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
elseif(i>1)then
local parametry_modul=require("Module:Parametry");
local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i]
return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
end;
end
function p.Kod_projektu(frame,i,wartosc_domyslna)
local pudelko_modul=require("Module:Pudełko");
if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end;
local pf=frame.getParent and frame:getParent() or {args={}};
if(i==0)then
return pudelko_modul["Kod projektu tego projektu"]();
elseif(i==1)then
local parametry_modul=require("Module:Parametry");
local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"]
return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
elseif(i>1)then
local parametry_modul=require("Module:Parametry");
local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i]
return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
end;
end
function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
local pf=frame.getParent and frame:getParent() or {args={}};
local klucz_projektu;
local function domyslne_klucz(klucz_projektu)
local parametry_modul=require("Module:Parametry");
return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil)));
end;
if(i==0)then
return nil;
elseif(i==1)then
local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"]
return domyslne_klucz(klucz_projektu);
elseif(i>1)then
local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu"]
return domyslne_klucz(klucz_projektu);
end;
end;
function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu));
return kod_jezyka,kod_projektu;
end;
function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy)
if(not bez_analizy)then
local parametry_modul=require("Module:Parametry");
if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then
return "";
elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then
return "Wikijunior";
elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]))
and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then
return "Project";
elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu")
or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])
and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])
and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"]))
and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu"))
or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])
and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"]))
and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then
return "Template";
elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu")
or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])
and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))
and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu"))
or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))
and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then
return "Module";
elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"])
and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then
return "User";
elseif(typ=="strona pliku")then
return "File";
elseif(typ=="strona kategorii")then
return "Category";
elseif(typ=="strona pomocy")then
return "Help";
elseif(typ=="strona komunikatu")then
return "MediaWiki";
elseif(typ=="strona specjalna")then
return "Special";
elseif(typ=="strona gadżetu")then
return "Gadget";
elseif(typ=="strona główna projektu")then
return "Project";
elseif(typ=="strona główna dla dzieci")then
return "Wikijunior";
end;
return;
end;
if(typ)then
if((typ=="artykuł")or(typ=="podręcznik"))then
return "";
elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then
return "Wikijunior";
elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then
return "Project";
elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then
return "Template";
elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then
return "Module";
elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then
return "User";
elseif(typ=="strona pliku")then
return "File";
elseif(typ=="strona kategorii")then
return "Category";
elseif(typ=="strona pomocy")then
return "Help";
elseif(typ=="strona komunikatu")then
return "MediaWiki";
elseif(typ=="strona specjalna")then
return "Special";
elseif(typ=="strona gadżetu")then
return "Gadget";
elseif(typ=="strona główna projektu")then
return "Project";
elseif(typ=="strona główna dla dzieci")then
return "Wikijunior";
end;
end;
end;
function p.Typ_jednostki_uzyskany_z_frame(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
local pf=frame.getParent and frame:getParent() or {args={}};
local typ;
if liczba_numer_jednostki~=0 then
typ=liczba_numer_jednostki and(frame.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki "..liczba_numer_jednostki]);
if(not typ)then
local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2);
if(nazwa_jednostki)then
if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then
local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1);
if(not nazwa_przesrzeni_nazw)then
typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
end;
end;
end;
end;
else
typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
end;
return typ,liczba_numer_jednostki;
end;
function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i)
local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i);
return typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil;
end;
function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu)
local parametry_modul=require("Module:Parametry");
local analiza=parametry_modul.CzyTak(frame.args["analiza"]);
local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i);
local uzyskana_przestrzen_nazw_od_typu_jednostki;
local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki);
if((not analiza)and(typ))then
if(typ~="")then
uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args);
if(uzyskana_przestrzen_nazw_od_typu_jednostki)then
if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then
return typ;
end;
else
return "(błąd typu jednostki)";
end;
end;
end;
local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,liczba_numer_jednostki,numer_argorytmu);
local nazwy_modul=require("Module:Nazwy");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local czy_blad_nazwa_przestrzeni_nazw;
if(czy_biezaca)then
czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
else
czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
end;
if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end;
nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw;
---
---
if((not analiza)and(typ))then
if(typ~="")then
---typ jednostki
if(uzyskana_przestrzen_nazw_od_typu_jednostki)then
if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then
if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then
return typ;
else
return "(błąd niezgodności)";
end;
end;
else
return "(błąd typu jednostki)";
end;
end;
end;
local function Typ_jednostki()
if(nazwa_jednostki~="")then
--local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki);
--local klucz_projektu=kod_projektu..":"..kod_jezyka;
local pudelko_modul=require("Module:Pudełko");
local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki;
if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end;
local nazwy_modul=require("Module:Nazwy")
pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw,kod_jezyka,kod_projektu);
if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then
local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka);
if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end;
local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka);
local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej;
if(nazwa_strony_glownej_dla_dzieci_uzyskana)then
if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end;
nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end;
end;
end;
local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu);
if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end;
local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu);
local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej;
if(nazwa_strony_glownej_projektu_uzyskana)then
if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end;
nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end;
end;
if(norm_przed_lub_dyskusji=="")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "artykuł";
else
local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
if(it)then return "podręcznik";else return "artykuł";end;
end;
elseif(norm_przed_lub_dyskusji=="Wikijunior")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "artykuł dla dzieci";
else
local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end;
end;
elseif(norm_przed_lub_dyskusji=="User")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then
return "strona użytkownika";
else
local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$")
if(czy_podstrony)then
return "strona główna użytkownika";
else
if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then
local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$");
if(czy_ksiazka)then
return "podręcznik użytkownika";
else
return "artykuł użytkownika";
end;
else
return "jednostka użytkownika";
end;
else
return "strona użytkownika";
end;
end;
end;
elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku";
elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii";
elseif(norm_przed_lub_dyskusji=="Project")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end;
if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then
if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then
local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$");
if(czy_ksiazka)then
return "podręcznik brudnopisu projektu";
else
return "artykuł brudnopisu projektu";
end;
else
return "jednostka brudnopisu projektu";
end;
else
return "strona brudnopisu projektu";
end;
else
return "strona projektu";
end;
elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy";
elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu";
elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna";
elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu";
elseif(nazwa_przestrzeni_nazw=="Template")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end;
local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix)
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return szablon;
else
if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then
return opis_szablonu;
else
if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then
local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$");
if(czy_brudnopis)then
local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename);
if(czy_istnieje_strona==1)then
local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{
[1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>',
[2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0
};
if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end;
else
return szablon;
end;
else
return strona_szablonu;
end;
else
return szablon;
end;
end;
end;
end;
if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then
return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/");
else
return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu","");
end;
elseif(nazwa_przestrzeni_nazw=="Module")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end;
if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "strona brudnopisu modułu"
else
local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then
return "strona brudnopisu opisu modułu";
else
return "strona brudnopisu modułu";
end;
end;
else
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "strona modułu"
else
local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then
return "strona opisu modułu";
else
return "strona modułu";
end;
end;
end;
else return "inne";
end;
end;
return "inne";
end;
local typ_jednostki=Typ_jednostki();
if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then
if(typ_jednostki==typ)then
return typ_jednostki;
elseif(nazwa_jednostki_podana)then
return "(błąd parametrów pudełkowych)"
else
return "(błąd typu jednostki)";
end;
end;
return typ_jednostki;
end;
function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu,co_ma_liczyc)
local nazwa_przestrzeni_fun,nazwa_jednostki_fun;
if(kod_liczbowy_przestrzeni_nazw==0)then
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
nazwa_jednostki_fun="Nazwa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw==1)then
nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw";
nazwa_jednostki_fun="Nazwa przedmiotowa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw==2)then
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji"
nazwa_jednostki_fun="Nazwa dyskusji jednostki";
else
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
nazwa_jednostki_fun="Nazwa jednostki";
end;
local pudelko_modul=require("Module:Pudełko");
if(not numer_argorytmu)then
if((not i)or(i==0))then
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul["Nazwa jednostki"](frame);
end;
else
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
local nazwa_jednostki=(n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
return (n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
end;
end;
else
if(numer_argorytmu==0)then
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul["Nazwa jednostki"](frame,i);
end;
else
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
end;
end;
end;
end;
function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki)
local pf=frame.getParent and frame:getParent() or {args={}};
return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)]
end;
function p.Nazwa_jednostki(frame,i)
local pf=frame.getParent and frame:getParent() or {args={}};
local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2);
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
if(nazwa_jednostki)then
nazwa_jednostki=mw.text.trim(nazwa_jednostki);
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:","");
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1");
local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$");
if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1");
end;
else
local nazwy_modul=require("Module:Nazwy");
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
local parametry_modul=require("Module:Parametry");
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
end;
function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac)
local pf=frame.getParent and frame:getParent() or {args={}};
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
local nazwa_jednostki;
local bool_numer_jednostki=(liczba_numer_jednostki~=0);
local function Nazwa_jednostki()
if bool_numer_jednostki then
nazwa_jednostki=frame.args["nazwa jednostki "..liczba_numer_jednostki] or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki];
else
nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"];
end;
return nazwa_jednostki;
end;
local function Nazwa_przestrzeni_nazw()
local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki])
or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
return nazwa_przestrzeni_nazw;
end;
if(not co_podac)then
return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki;
elseif(co_podac==1)then
return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki;
elseif(co_podac==2)then
return Nazwa_jednostki(),liczba_numer_jednostki;
else
return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki;
end;
end;
function p.Jaka_nazwa_jednostki(frame,i,jaka)
local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i);
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki);
----
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]();
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true);
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]();
end;
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(jaka)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak"};
else
nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
if(czy_biezaca)then
nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw};
else
nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
if(not mw.ustring.match(nazwa_jednostki,"^:"))then
if(nazwa_przestrzeni_nazw~="")then
if(czy_biezaca)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then
return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
end;
elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then
return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
end;
end;
else
local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw==template_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==template_prze)then
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
elseif(nazwa_przestrzeni_nazw==module_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==module_prze)then
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
end;
local parametry_modul=require("Module:Parametry");
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
else
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu)
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca)then
jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw};
else
jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter)
if(czy_biezaca)then
nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter};
else
nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then
return true;
end;
return false;
end;
for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do
if(type(licznik)=="number")then
local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*");
if(nazwa_przestrzeni_nazw_element and klucze_element)then
local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false);
local wiki_modul=require("Module:Wiki");
for _,klucz_element in ipairs(tab_klucze)do
local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element);
if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then
local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element);
if(wynik)then return true;end;
end;
end;
else
local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw);
if(wynik)then return true;end;
end;
end;
end;
return false;
end;
function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt)
local parametry_modul=require("Module:Parametry");
local p=parametry_modul.PobierzFrameEwentualnieParent(frame);
local pudelko_modul=require("Module:Pudełko");
local wiki_modul=require("Module:Wiki");
local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"]();
local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"]();
for i,_ in pairs(p.args)do
if(type(i)=="number")then
local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i);
local kod_jezyka=pudelko_modul["Kod języka"](frame,i);
local kod_projektu=pudelko_modul["kod projektu"](frame,i);
local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then
return "tak";
end;
end;
end;
return;
end;
return p;
psqpe8pnt91aj4t68xx1cgxhuv065qa
540293
540286
2026-04-22T19:23:01Z
Persino
2851
540293
Scribunto
text/plain
local p={};
function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu)
local strona=require("Module:Pudełko")["Strona główna tego projektu"]();
local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu};
if(odpowiednik_strony)then
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
else
local pudelko_modul=require("Module:Pudełko");
if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then
return strona;
else
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu]
or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu];
return czy_w_wikidanych and "Main Page" or nil;
end;
end;
end;
function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka)
local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"]();
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end;
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu};
if(odpowiednik_strony)then
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,};
else
return "Wikijunior";
end;
end;
function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu)
local pf=frame.getParent and frame:getParent() or {args={}};
local strona_glowna_projektu;
if(i~=0)then
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"]();
if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then
strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
else
strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i])
end;
else
strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
end;
local parametry_modul=require("Module:Parametry");
return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil);
end;
function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka)
local pf=frame.getParent and frame:getParent() or {args={}};
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_dla_dzieci;
if(i~=0)then
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
if(kod_jezyka==kod_jezyka_tego_projektu)then
strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
else
strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i])
end;
else
strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
end;
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local parametry_modul=require("Module:Parametry");
return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil);
end;
function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu)
local nazwa_przestrzeni_nazw_blad;
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(normmalna_przedmiotwa_dyskusji==0)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(normmalna_przedmiotwa_dyskusji==1)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(normmalna_przedmiotwa_dyskusji==2)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
else
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
end;
return nazwa_przestrzeni_nazw_blad
end;
function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki)
local pf=frame.getParent and frame:getParent() or {args={}};
local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki);
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local czy_blad_nazwy_przestrzeni_nazw;
if(kod_liczbowy_przestrzeni_nazw==1)then
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(kod_liczbowy_przestrzeni_nazw==2)then
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
else
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
end;
if(czy_blad_nazwy_przestrzeni_nazw)then
return czy_blad_nazwy_przestrzeni_nazw;
else
if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then
local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]);
if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then
local czy_blad_nazwa_przestrzeni_nazw_alternatywnej;
if(czy_biezaca_wiki)then
czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)";
else
return "(błąd)";
end;
else
local parametry_modul=require("Module:Parametry");
nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",};
if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
return nazwa_przestrzeni_nazw;
else
return "(błąd)";
end;
end;
end;
end;
function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i)
local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i);
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki);
local nazwy_modul=require("Module:Nazwy");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni_nazw_blad;
local parametry_modul=require("Module:Parametry");
if(czy_biezaca_wiki)then
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]();
nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_jednostki)then
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1");
local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$");
if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1");
end;
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]();
end;
else
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true);
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw;
if(not mw.ustring.match(nazwa_jednostki,"^:"))then
if(nazwa_przestrzeni_nazw~="")then
if(czy_biezaca_wiki)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then
local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then
nazwa_przestrzeni_nazw=nazwy_np_modul.Template;
end;
elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then
local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then
nazwa_przestrzeni_nazw=nazwy_np_modul.Module;
end;
end;
else
local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw==template_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==template_prze)then
nazwa_przestrzeni_nazw=template_prze;
end;
elseif(nazwa_przestrzeni_nazw==module_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==module_prze)then
nazwa_przestrzeni_nazw=module_prze;
end;
end;
end;
if(not nazwa_przestrzeni_nazw_blad)then
if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then
local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]);
if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
if(czy_biezaca_wiki)then
local nazwy_modul=require("Module:Nazwy");
local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
return czy_blad_nazwy_przestrzeni_nazw or "(błąd)";
else
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
return nazwa_przestrzeni_nazw_blad2 or "(błąd)";
end;
else
return "(błąd)";
end;
else
local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw);
if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
return wytrimowana_nazwa_przestrzeni_nazw;
else
return "(błąd)";
end;
end;
else
return nazwa_przestrzeni_nazw;
end;
else
return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local nazwa_przestrzeni_nazw=require("Module:Pudełko")["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca)then
return nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw};
else
return nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Kod_jezyka(frame,i,wartosc_domyslna)
local pudelko_modul=require("Module:Pudełko");
if(not i)then return pudelko_modul["Kod języka tego projektu"]();end;
local pf=frame.getParent and frame:getParent() or {args={}};
if(i==0)then
return pudelko_modul["Kod języka tego projektu"]();
elseif(i==1)then
local parametry_modul=require("Module:Parametry");
local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"]
return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
elseif(i>1)then
local parametry_modul=require("Module:Parametry");
local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i]
return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
end;
end
function p.Kod_projektu(frame,i,wartosc_domyslna)
local pudelko_modul=require("Module:Pudełko");
if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end;
local pf=frame.getParent and frame:getParent() or {args={}};
if(i==0)then
return pudelko_modul["Kod projektu tego projektu"]();
elseif(i==1)then
local parametry_modul=require("Module:Parametry");
local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"]
return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
elseif(i>1)then
local parametry_modul=require("Module:Parametry");
local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i]
return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
end;
end
function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
local pf=frame.getParent and frame:getParent() or {args={}};
local klucz_projektu;
local function domyslne_klucz(klucz_projektu)
local parametry_modul=require("Module:Parametry");
return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil)));
end;
if(i==0)then
return nil;
elseif(i==1)then
local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"];
return domyslne_klucz(klucz_projektu);
elseif(i>1)then
local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i];
return domyslne_klucz(klucz_projektu);
end;
end;
function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu));
return kod_jezyka,kod_projektu;
end;
function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy)
if(not bez_analizy)then
local parametry_modul=require("Module:Parametry");
if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then
return "";
elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then
return "Wikijunior";
elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]))
and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then
return "Project";
elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu")
or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])
and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])
and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"]))
and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu"))
or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])
and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"]))
and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then
return "Template";
elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu")
or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])
and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))
and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu"))
or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))
and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then
return "Module";
elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"])
and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then
return "User";
elseif(typ=="strona pliku")then
return "File";
elseif(typ=="strona kategorii")then
return "Category";
elseif(typ=="strona pomocy")then
return "Help";
elseif(typ=="strona komunikatu")then
return "MediaWiki";
elseif(typ=="strona specjalna")then
return "Special";
elseif(typ=="strona gadżetu")then
return "Gadget";
elseif(typ=="strona główna projektu")then
return "Project";
elseif(typ=="strona główna dla dzieci")then
return "Wikijunior";
end;
return;
end;
if(typ)then
if((typ=="artykuł")or(typ=="podręcznik"))then
return "";
elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then
return "Wikijunior";
elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then
return "Project";
elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then
return "Template";
elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then
return "Module";
elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then
return "User";
elseif(typ=="strona pliku")then
return "File";
elseif(typ=="strona kategorii")then
return "Category";
elseif(typ=="strona pomocy")then
return "Help";
elseif(typ=="strona komunikatu")then
return "MediaWiki";
elseif(typ=="strona specjalna")then
return "Special";
elseif(typ=="strona gadżetu")then
return "Gadget";
elseif(typ=="strona główna projektu")then
return "Project";
elseif(typ=="strona główna dla dzieci")then
return "Wikijunior";
end;
end;
end;
function p.Typ_jednostki_uzyskany_z_frame(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
local pf=frame.getParent and frame:getParent() or {args={}};
local typ;
if liczba_numer_jednostki~=0 then
typ=liczba_numer_jednostki and(frame.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki "..liczba_numer_jednostki]);
if(not typ)then
local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2);
if(nazwa_jednostki)then
if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then
local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1);
if(not nazwa_przesrzeni_nazw)then
typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
end;
end;
end;
end;
else
typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
end;
return typ,liczba_numer_jednostki;
end;
function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i)
local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i);
return typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil;
end;
function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu)
local parametry_modul=require("Module:Parametry");
local analiza=parametry_modul.CzyTak(frame.args["analiza"]);
local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i);
local uzyskana_przestrzen_nazw_od_typu_jednostki;
local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki);
if((not analiza)and(typ))then
if(typ~="")then
uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args);
if(uzyskana_przestrzen_nazw_od_typu_jednostki)then
if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then
return typ;
end;
else
return "(błąd typu jednostki)";
end;
end;
end;
local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,liczba_numer_jednostki,numer_argorytmu);
local nazwy_modul=require("Module:Nazwy");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local czy_blad_nazwa_przestrzeni_nazw;
if(czy_biezaca)then
czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
else
czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
end;
if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end;
nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw;
---
---
if((not analiza)and(typ))then
if(typ~="")then
---typ jednostki
if(uzyskana_przestrzen_nazw_od_typu_jednostki)then
if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then
if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then
return typ;
else
return "(błąd niezgodności)";
end;
end;
else
return "(błąd typu jednostki)";
end;
end;
end;
local function Typ_jednostki()
if(nazwa_jednostki~="")then
--local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki);
--local klucz_projektu=kod_projektu..":"..kod_jezyka;
local pudelko_modul=require("Module:Pudełko");
local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki;
if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end;
local nazwy_modul=require("Module:Nazwy")
pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw,kod_jezyka,kod_projektu);
if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then
local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka);
if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end;
local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka);
local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej;
if(nazwa_strony_glownej_dla_dzieci_uzyskana)then
if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end;
nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end;
end;
end;
local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu);
if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end;
local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu);
local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej;
if(nazwa_strony_glownej_projektu_uzyskana)then
if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end;
nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end;
end;
if(norm_przed_lub_dyskusji=="")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "artykuł";
else
local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
if(it)then return "podręcznik";else return "artykuł";end;
end;
elseif(norm_przed_lub_dyskusji=="Wikijunior")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "artykuł dla dzieci";
else
local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end;
end;
elseif(norm_przed_lub_dyskusji=="User")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then
return "strona użytkownika";
else
local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$")
if(czy_podstrony)then
return "strona główna użytkownika";
else
if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then
local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$");
if(czy_ksiazka)then
return "podręcznik użytkownika";
else
return "artykuł użytkownika";
end;
else
return "jednostka użytkownika";
end;
else
return "strona użytkownika";
end;
end;
end;
elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku";
elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii";
elseif(norm_przed_lub_dyskusji=="Project")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end;
if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then
if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then
local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$");
if(czy_ksiazka)then
return "podręcznik brudnopisu projektu";
else
return "artykuł brudnopisu projektu";
end;
else
return "jednostka brudnopisu projektu";
end;
else
return "strona brudnopisu projektu";
end;
else
return "strona projektu";
end;
elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy";
elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu";
elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna";
elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu";
elseif(nazwa_przestrzeni_nazw=="Template")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end;
local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix)
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return szablon;
else
if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then
return opis_szablonu;
else
if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then
local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$");
if(czy_brudnopis)then
local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename);
if(czy_istnieje_strona==1)then
local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{
[1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>',
[2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0
};
if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end;
else
return szablon;
end;
else
return strona_szablonu;
end;
else
return szablon;
end;
end;
end;
end;
if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then
return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/");
else
return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu","");
end;
elseif(nazwa_przestrzeni_nazw=="Module")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end;
if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "strona brudnopisu modułu"
else
local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then
return "strona brudnopisu opisu modułu";
else
return "strona brudnopisu modułu";
end;
end;
else
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "strona modułu"
else
local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then
return "strona opisu modułu";
else
return "strona modułu";
end;
end;
end;
else return "inne";
end;
end;
return "inne";
end;
local typ_jednostki=Typ_jednostki();
if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then
if(typ_jednostki==typ)then
return typ_jednostki;
elseif(nazwa_jednostki_podana)then
return "(błąd parametrów pudełkowych)"
else
return "(błąd typu jednostki)";
end;
end;
return typ_jednostki;
end;
function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu,co_ma_liczyc)
local nazwa_przestrzeni_fun,nazwa_jednostki_fun;
if(kod_liczbowy_przestrzeni_nazw==0)then
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
nazwa_jednostki_fun="Nazwa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw==1)then
nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw";
nazwa_jednostki_fun="Nazwa przedmiotowa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw==2)then
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji"
nazwa_jednostki_fun="Nazwa dyskusji jednostki";
else
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
nazwa_jednostki_fun="Nazwa jednostki";
end;
local pudelko_modul=require("Module:Pudełko");
if(not numer_argorytmu)then
if((not i)or(i==0))then
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul["Nazwa jednostki"](frame);
end;
else
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
local nazwa_jednostki=(n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
return (n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
end;
end;
else
if(numer_argorytmu==0)then
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul["Nazwa jednostki"](frame,i);
end;
else
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
end;
end;
end;
end;
function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki)
local pf=frame.getParent and frame:getParent() or {args={}};
return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)]
end;
function p.Nazwa_jednostki(frame,i)
local pf=frame.getParent and frame:getParent() or {args={}};
local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2);
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
if(nazwa_jednostki)then
nazwa_jednostki=mw.text.trim(nazwa_jednostki);
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:","");
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1");
local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$");
if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1");
end;
else
local nazwy_modul=require("Module:Nazwy");
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
local parametry_modul=require("Module:Parametry");
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
end;
function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac)
local pf=frame.getParent and frame:getParent() or {args={}};
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
local nazwa_jednostki;
local bool_numer_jednostki=(liczba_numer_jednostki~=0);
local function Nazwa_jednostki()
if bool_numer_jednostki then
nazwa_jednostki=frame.args["nazwa jednostki "..liczba_numer_jednostki] or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki];
else
nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"];
end;
return nazwa_jednostki;
end;
local function Nazwa_przestrzeni_nazw()
local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki])
or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
return nazwa_przestrzeni_nazw;
end;
if(not co_podac)then
return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki;
elseif(co_podac==1)then
return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki;
elseif(co_podac==2)then
return Nazwa_jednostki(),liczba_numer_jednostki;
else
return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki;
end;
end;
function p.Jaka_nazwa_jednostki(frame,i,jaka)
local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i);
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki);
----
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]();
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true);
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]();
end;
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(jaka)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak"};
else
nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
if(czy_biezaca)then
nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw};
else
nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
if(not mw.ustring.match(nazwa_jednostki,"^:"))then
if(nazwa_przestrzeni_nazw~="")then
if(czy_biezaca)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then
return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
end;
elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then
return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
end;
end;
else
local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw==template_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==template_prze)then
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
elseif(nazwa_przestrzeni_nazw==module_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==module_prze)then
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
end;
local parametry_modul=require("Module:Parametry");
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
else
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu)
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca)then
jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw};
else
jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter)
if(czy_biezaca)then
nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter};
else
nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then
return true;
end;
return false;
end;
for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do
if(type(licznik)=="number")then
local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*");
if(nazwa_przestrzeni_nazw_element and klucze_element)then
local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false);
local wiki_modul=require("Module:Wiki");
for _,klucz_element in ipairs(tab_klucze)do
local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element);
if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then
local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element);
if(wynik)then return true;end;
end;
end;
else
local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw);
if(wynik)then return true;end;
end;
end;
end;
return false;
end;
function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt)
local parametry_modul=require("Module:Parametry");
local p=parametry_modul.PobierzFrameEwentualnieParent(frame);
local pudelko_modul=require("Module:Pudełko");
local wiki_modul=require("Module:Wiki");
local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"]();
local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"]();
for i,_ in pairs(p.args)do
if(type(i)=="number")then
local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i);
local kod_jezyka=pudelko_modul["Kod języka"](frame,i);
local kod_projektu=pudelko_modul["kod projektu"](frame,i);
local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then
return "tak";
end;
end;
end;
return;
end;
return p;
81rfku7b6wyw6zs8uxjio98lz1mgl7f
540340
540293
2026-04-23T08:35:53Z
Persino
2851
540340
Scribunto
text/plain
local p={};
function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu)
local strona=require("Module:Pudełko")["Strona główna tego projektu"]();
local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu};
if(odpowiednik_strony)then
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
else
local pudelko_modul=require("Module:Pudełko");
if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then
return strona;
else
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu]
or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu];
return czy_w_wikidanych and "Main Page" or nil;
end;
end;
end;
function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka)
local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"]();
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end;
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu};
if(odpowiednik_strony)then
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,};
else
return "Wikijunior";
end;
end;
function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu)
local pf=frame.getParent and frame:getParent() or {args={}};
local strona_glowna_projektu;
if(i~=0)then
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"]();
if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then
strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
else
strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i])
end;
else
strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
end;
local parametry_modul=require("Module:Parametry");
return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil);
end;
function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka)
local pf=frame.getParent and frame:getParent() or {args={}};
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_dla_dzieci;
if(i~=0)then
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
if(kod_jezyka==kod_jezyka_tego_projektu)then
strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
else
strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i])
end;
else
strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
end;
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local parametry_modul=require("Module:Parametry");
return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil);
end;
function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu)
local nazwa_przestrzeni_nazw_blad;
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(normmalna_przedmiotwa_dyskusji==0)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(normmalna_przedmiotwa_dyskusji==1)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(normmalna_przedmiotwa_dyskusji==2)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
else
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
end;
return nazwa_przestrzeni_nazw_blad
end;
function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki)
local pf=frame.getParent and frame:getParent() or {args={}};
local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki);
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local czy_blad_nazwy_przestrzeni_nazw;
local typ;
if(kod_liczbowy_przestrzeni_nazw==1)then
typ="przedmiotowa";
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(kod_liczbowy_przestrzeni_nazw==2)then
if(czy_biezaca_wiki)then
typ="dyskusja";
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
else
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
end;
if(czy_blad_nazwy_przestrzeni_nazw)then
return czy_blad_nazwy_przestrzeni_nazw;
else
if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then
local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]);
if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then
local czy_blad_nazwa_przestrzeni_nazw_alternatywnej;
if(czy_biezaca_wiki)then
local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(typ)then tab_parametry[typ]="tak";end;
czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np(tab_parametry);
else
local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(typ)then tab_parametry[typ]="tak";end;
czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane(tab_parametry);
end;
return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)";
else
return "(błąd)";
end;
else
local parametry_modul=require("Module:Parametry");
nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",};
if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
return nazwa_przestrzeni_nazw;
else
return "(błąd)";
end;
end;
end;
end;
function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i)
local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i);
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki);
local nazwy_modul=require("Module:Nazwy");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni_nazw_blad;
local parametry_modul=require("Module:Parametry");
if(czy_biezaca_wiki)then
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]();
nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_jednostki)then
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1");
local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$");
if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1");
end;
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]();
end;
else
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true);
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw;
if(not mw.ustring.match(nazwa_jednostki,"^:"))then
if(nazwa_przestrzeni_nazw~="")then
if(czy_biezaca_wiki)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then
local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then
nazwa_przestrzeni_nazw=nazwy_np_modul.Template;
end;
elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then
local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then
nazwa_przestrzeni_nazw=nazwy_np_modul.Module;
end;
end;
else
local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw==template_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==template_prze)then
nazwa_przestrzeni_nazw=template_prze;
end;
elseif(nazwa_przestrzeni_nazw==module_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==module_prze)then
nazwa_przestrzeni_nazw=module_prze;
end;
end;
end;
if(not nazwa_przestrzeni_nazw_blad)then
if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then
local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]);
if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
if(czy_biezaca_wiki)then
local nazwy_modul=require("Module:Nazwy");
local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
return czy_blad_nazwy_przestrzeni_nazw or "(błąd)";
else
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
return nazwa_przestrzeni_nazw_blad2 or "(błąd)";
end;
else
return "(błąd)";
end;
else
local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw);
if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
return wytrimowana_nazwa_przestrzeni_nazw;
else
return "(błąd)";
end;
end;
else
return nazwa_przestrzeni_nazw;
end;
else
return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local nazwa_przestrzeni_nazw=require("Module:Pudełko")["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca)then
return nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw};
else
return nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Kod_jezyka(frame,i,wartosc_domyslna)
local pudelko_modul=require("Module:Pudełko");
if(not i)then return pudelko_modul["Kod języka tego projektu"]();end;
local pf=frame.getParent and frame:getParent() or {args={}};
if(i==0)then
return pudelko_modul["Kod języka tego projektu"]();
elseif(i==1)then
local parametry_modul=require("Module:Parametry");
local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"]
return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
elseif(i>1)then
local parametry_modul=require("Module:Parametry");
local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i]
return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
end;
end
function p.Kod_projektu(frame,i,wartosc_domyslna)
local pudelko_modul=require("Module:Pudełko");
if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end;
local pf=frame.getParent and frame:getParent() or {args={}};
if(i==0)then
return pudelko_modul["Kod projektu tego projektu"]();
elseif(i==1)then
local parametry_modul=require("Module:Parametry");
local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"]
return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
elseif(i>1)then
local parametry_modul=require("Module:Parametry");
local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i]
return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
end;
end
function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
local pf=frame.getParent and frame:getParent() or {args={}};
local klucz_projektu;
local function domyslne_klucz(klucz_projektu)
local parametry_modul=require("Module:Parametry");
return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil)));
end;
if(i==0)then
return nil;
elseif(i==1)then
local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"];
return domyslne_klucz(klucz_projektu);
elseif(i>1)then
local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i];
return domyslne_klucz(klucz_projektu);
end;
end;
function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu));
return kod_jezyka,kod_projektu;
end;
function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy)
if(not bez_analizy)then
local parametry_modul=require("Module:Parametry");
if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then
return "";
elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then
return "Wikijunior";
elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]))
and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then
return "Project";
elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu")
or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])
and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])
and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"]))
and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu"))
or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])
and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"]))
and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then
return "Template";
elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu")
or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])
and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))
and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu"))
or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))
and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then
return "Module";
elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"])
and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then
return "User";
elseif(typ=="strona pliku")then
return "File";
elseif(typ=="strona kategorii")then
return "Category";
elseif(typ=="strona pomocy")then
return "Help";
elseif(typ=="strona komunikatu")then
return "MediaWiki";
elseif(typ=="strona specjalna")then
return "Special";
elseif(typ=="strona gadżetu")then
return "Gadget";
elseif(typ=="strona główna projektu")then
return "Project";
elseif(typ=="strona główna dla dzieci")then
return "Wikijunior";
end;
return;
end;
if(typ)then
if((typ=="artykuł")or(typ=="podręcznik"))then
return "";
elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then
return "Wikijunior";
elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then
return "Project";
elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then
return "Template";
elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then
return "Module";
elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then
return "User";
elseif(typ=="strona pliku")then
return "File";
elseif(typ=="strona kategorii")then
return "Category";
elseif(typ=="strona pomocy")then
return "Help";
elseif(typ=="strona komunikatu")then
return "MediaWiki";
elseif(typ=="strona specjalna")then
return "Special";
elseif(typ=="strona gadżetu")then
return "Gadget";
elseif(typ=="strona główna projektu")then
return "Project";
elseif(typ=="strona główna dla dzieci")then
return "Wikijunior";
end;
end;
end;
function p.Typ_jednostki_uzyskany_z_frame(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
local pf=frame.getParent and frame:getParent() or {args={}};
local typ;
if liczba_numer_jednostki~=0 then
typ=liczba_numer_jednostki and(frame.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki "..liczba_numer_jednostki]);
if(not typ)then
local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2);
if(nazwa_jednostki)then
if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then
local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1);
if(not nazwa_przesrzeni_nazw)then
typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
end;
end;
end;
end;
else
typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
end;
return typ,liczba_numer_jednostki;
end;
function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i)
local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i);
return typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil;
end;
function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu)
local parametry_modul=require("Module:Parametry");
local analiza=parametry_modul.CzyTak(frame.args["analiza"]);
local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i);
local uzyskana_przestrzen_nazw_od_typu_jednostki;
local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki);
if((not analiza)and(typ))then
if(typ~="")then
uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args);
if(uzyskana_przestrzen_nazw_od_typu_jednostki)then
if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then
return typ;
end;
else
return "(błąd typu jednostki)";
end;
end;
end;
local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,liczba_numer_jednostki,numer_argorytmu);
local nazwy_modul=require("Module:Nazwy");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local czy_blad_nazwa_przestrzeni_nazw;
if(czy_biezaca)then
czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
else
czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
end;
if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end;
nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw;
---
---
if((not analiza)and(typ))then
if(typ~="")then
---typ jednostki
if(uzyskana_przestrzen_nazw_od_typu_jednostki)then
if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then
if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then
return typ;
else
return "(błąd niezgodności)";
end;
end;
else
return "(błąd typu jednostki)";
end;
end;
end;
local function Typ_jednostki()
if(nazwa_jednostki~="")then
--local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki);
--local klucz_projektu=kod_projektu..":"..kod_jezyka;
local pudelko_modul=require("Module:Pudełko");
local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki;
if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end;
local nazwy_modul=require("Module:Nazwy")
pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw,kod_jezyka,kod_projektu);
if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then
local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka);
if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end;
local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka);
local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej;
if(nazwa_strony_glownej_dla_dzieci_uzyskana)then
if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end;
nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end;
end;
end;
local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu);
if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end;
local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu);
local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej;
if(nazwa_strony_glownej_projektu_uzyskana)then
if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end;
nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end;
end;
if(norm_przed_lub_dyskusji=="")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "artykuł";
else
local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
if(it)then return "podręcznik";else return "artykuł";end;
end;
elseif(norm_przed_lub_dyskusji=="Wikijunior")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "artykuł dla dzieci";
else
local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end;
end;
elseif(norm_przed_lub_dyskusji=="User")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then
return "strona użytkownika";
else
local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$")
if(czy_podstrony)then
return "strona główna użytkownika";
else
if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then
local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$");
if(czy_ksiazka)then
return "podręcznik użytkownika";
else
return "artykuł użytkownika";
end;
else
return "jednostka użytkownika";
end;
else
return "strona użytkownika";
end;
end;
end;
elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku";
elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii";
elseif(norm_przed_lub_dyskusji=="Project")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end;
if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then
if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then
local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$");
if(czy_ksiazka)then
return "podręcznik brudnopisu projektu";
else
return "artykuł brudnopisu projektu";
end;
else
return "jednostka brudnopisu projektu";
end;
else
return "strona brudnopisu projektu";
end;
else
return "strona projektu";
end;
elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy";
elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu";
elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna";
elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu";
elseif(nazwa_przestrzeni_nazw=="Template")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end;
local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix)
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return szablon;
else
if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then
return opis_szablonu;
else
if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then
local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$");
if(czy_brudnopis)then
local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename);
if(czy_istnieje_strona==1)then
local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{
[1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>',
[2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0
};
if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end;
else
return szablon;
end;
else
return strona_szablonu;
end;
else
return szablon;
end;
end;
end;
end;
if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then
return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/");
else
return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu","");
end;
elseif(nazwa_przestrzeni_nazw=="Module")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end;
if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "strona brudnopisu modułu"
else
local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then
return "strona brudnopisu opisu modułu";
else
return "strona brudnopisu modułu";
end;
end;
else
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "strona modułu"
else
local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then
return "strona opisu modułu";
else
return "strona modułu";
end;
end;
end;
else return "inne";
end;
end;
return "inne";
end;
local typ_jednostki=Typ_jednostki();
if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then
if(typ_jednostki==typ)then
return typ_jednostki;
elseif(nazwa_jednostki_podana)then
return "(błąd parametrów pudełkowych)"
else
return "(błąd typu jednostki)";
end;
end;
return typ_jednostki;
end;
function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu,co_ma_liczyc)
local nazwa_przestrzeni_fun,nazwa_jednostki_fun;
if(kod_liczbowy_przestrzeni_nazw==0)then
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
nazwa_jednostki_fun="Nazwa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw==1)then
nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw";
nazwa_jednostki_fun="Nazwa przedmiotowa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw==2)then
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji"
nazwa_jednostki_fun="Nazwa dyskusji jednostki";
else
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
nazwa_jednostki_fun="Nazwa jednostki";
end;
local pudelko_modul=require("Module:Pudełko");
if(not numer_argorytmu)then
if((not i)or(i==0))then
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul["Nazwa jednostki"](frame);
end;
else
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
local nazwa_jednostki=(n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
return (n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
end;
end;
else
if(numer_argorytmu==0)then
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul["Nazwa jednostki"](frame,i);
end;
else
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
end;
end;
end;
end;
function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki)
local pf=frame.getParent and frame:getParent() or {args={}};
return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)]
end;
function p.Nazwa_jednostki(frame,i)
local pf=frame.getParent and frame:getParent() or {args={}};
local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2);
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
if(nazwa_jednostki)then
nazwa_jednostki=mw.text.trim(nazwa_jednostki);
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:","");
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1");
local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$");
if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1");
end;
else
local nazwy_modul=require("Module:Nazwy");
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
local parametry_modul=require("Module:Parametry");
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
end;
function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac)
local pf=frame.getParent and frame:getParent() or {args={}};
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
local nazwa_jednostki;
local bool_numer_jednostki=(liczba_numer_jednostki~=0);
local function Nazwa_jednostki()
if bool_numer_jednostki then
nazwa_jednostki=frame.args["nazwa jednostki "..liczba_numer_jednostki] or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki];
else
nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"];
end;
return nazwa_jednostki;
end;
local function Nazwa_przestrzeni_nazw()
local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki])
or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
return nazwa_przestrzeni_nazw;
end;
if(not co_podac)then
return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki;
elseif(co_podac==1)then
return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki;
elseif(co_podac==2)then
return Nazwa_jednostki(),liczba_numer_jednostki;
else
return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki;
end;
end;
function p.Jaka_nazwa_jednostki(frame,i,jaka)
local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i);
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki);
----
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]();
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true);
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]();
end;
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(jaka)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak"};
else
nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
if(czy_biezaca)then
nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw};
else
nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
if(not mw.ustring.match(nazwa_jednostki,"^:"))then
if(nazwa_przestrzeni_nazw~="")then
if(czy_biezaca)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then
return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
end;
elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then
return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
end;
end;
else
local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw==template_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==template_prze)then
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
elseif(nazwa_przestrzeni_nazw==module_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==module_prze)then
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
end;
local parametry_modul=require("Module:Parametry");
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
else
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu)
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca)then
jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw};
else
jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter)
if(czy_biezaca)then
nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter};
else
nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then
return true;
end;
return false;
end;
for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do
if(type(licznik)=="number")then
local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*");
if(nazwa_przestrzeni_nazw_element and klucze_element)then
local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false);
local wiki_modul=require("Module:Wiki");
for _,klucz_element in ipairs(tab_klucze)do
local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element);
if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then
local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element);
if(wynik)then return true;end;
end;
end;
else
local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw);
if(wynik)then return true;end;
end;
end;
end;
return false;
end;
function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt)
local parametry_modul=require("Module:Parametry");
local p=parametry_modul.PobierzFrameEwentualnieParent(frame);
local pudelko_modul=require("Module:Pudełko");
local wiki_modul=require("Module:Wiki");
local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"]();
local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"]();
for i,_ in pairs(p.args)do
if(type(i)=="number")then
local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i);
local kod_jezyka=pudelko_modul["Kod języka"](frame,i);
local kod_projektu=pudelko_modul["kod projektu"](frame,i);
local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then
return "tak";
end;
end;
end;
return;
end;
return p;
83zzlku4h60lfacah9xokzsrf7sdvw8
540359
540340
2026-04-23T10:59:49Z
Persino
2851
540359
Scribunto
text/plain
local p={};
function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu)
local strona=require("Module:Pudełko")["Strona główna tego projektu"]();
local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu};
if(odpowiednik_strony)then
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
else
local pudelko_modul=require("Module:Pudełko");
if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then
return strona;
else
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu]
or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu];
return czy_w_wikidanych and "Main Page" or nil;
end;
end;
end;
function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka)
local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"]();
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end;
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu};
if(odpowiednik_strony)then
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,};
else
return "Wikijunior";
end;
end;
function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu)
local pf=frame.getParent and frame:getParent() or {args={}};
local strona_glowna_projektu;
if(i~=0)then
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"]();
if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then
strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
else
strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i])
end;
else
strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
end;
local parametry_modul=require("Module:Parametry");
return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil);
end;
function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka)
local pf=frame.getParent and frame:getParent() or {args={}};
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_dla_dzieci;
if(i~=0)then
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
if(kod_jezyka==kod_jezyka_tego_projektu)then
strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
else
strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i])
end;
else
strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
end;
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local parametry_modul=require("Module:Parametry");
return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil);
end;
function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu)
local nazwa_przestrzeni_nazw_blad;
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(normmalna_przedmiotwa_dyskusji==0)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(normmalna_przedmiotwa_dyskusji==1)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(normmalna_przedmiotwa_dyskusji==2)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
else
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
end;
return nazwa_przestrzeni_nazw_blad
end;
function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki)
local pf=frame.getParent and frame:getParent() or {args={}};
local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki);
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local czy_blad_nazwy_przestrzeni_nazw;
local typ;
if(kod_liczbowy_przestrzeni_nazw==1)then
typ="przedmiotowa";
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(kod_liczbowy_przestrzeni_nazw==2)then
if(czy_biezaca_wiki)then
typ="dyskusja";
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
else
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
end;
if(czy_blad_nazwy_przestrzeni_nazw)then
return czy_blad_nazwy_przestrzeni_nazw;
else
if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then
local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]);
if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then
local czy_blad_nazwa_przestrzeni_nazw_alternatywnej;
if(czy_biezaca_wiki)then
local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(typ)then tab_parametry[typ]="tak";end;
czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np(tab_parametry);
else
local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(typ)then tab_parametry[typ]="tak";end;
czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane(tab_parametry);
end;
return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)";
else
return "(błąd)";
end;
else
local parametry_modul=require("Module:Parametry");
nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",};
if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
return nazwa_przestrzeni_nazw;
else
return "(błąd)";
end;
end;
end;
end;
function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i)
local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i);
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki);
local nazwy_modul=require("Module:Nazwy");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni_nazw_blad;
local parametry_modul=require("Module:Parametry");
if(czy_biezaca_wiki)then
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]();
nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_jednostki)then
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1");
local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$");
if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1");
end;
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]();
end;
else
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true);
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw;
if(not mw.ustring.match(nazwa_jednostki,"^:"))then
if(nazwa_przestrzeni_nazw~="")then
if(czy_biezaca_wiki)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then
local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then
nazwa_przestrzeni_nazw=nazwy_np_modul.Template;
end;
elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then
local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then
nazwa_przestrzeni_nazw=nazwy_np_modul.Module;
end;
end;
else
local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw==template_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==template_prze)then
nazwa_przestrzeni_nazw=template_prze;
end;
elseif(nazwa_przestrzeni_nazw==module_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==module_prze)then
nazwa_przestrzeni_nazw=module_prze;
end;
end;
end;
if(not nazwa_przestrzeni_nazw_blad)then
if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then
local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]);
if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
if(czy_biezaca_wiki)then
local nazwy_modul=require("Module:Nazwy");
local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
return czy_blad_nazwy_przestrzeni_nazw or "(błąd)";
else
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
return nazwa_przestrzeni_nazw_blad2 or "(błąd)";
end;
else
return "(błąd)";
end;
else
local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw);
if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
return wytrimowana_nazwa_przestrzeni_nazw;
else
return "(błąd)";
end;
end;
else
return nazwa_przestrzeni_nazw;
end;
else
return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local nazwa_przestrzeni_nazw=require("Module:Pudełko")["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca)then
return nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw};
else
return nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Kod_jezyka(frame,i,wartosc_domyslna)
local pudelko_modul=require("Module:Pudełko");
if(not i)then return pudelko_modul["Kod języka tego projektu"]();end;
local pf=frame.getParent and frame:getParent() or {args={}};
if(i==0)then
return pudelko_modul["Kod języka tego projektu"]();
elseif(i==1)then
local parametry_modul=require("Module:Parametry");
local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"]
return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
elseif(i>1)then
local parametry_modul=require("Module:Parametry");
local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i]
return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
end;
end
function p.Kod_projektu(frame,i,wartosc_domyslna)
local pudelko_modul=require("Module:Pudełko");
if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end;
local pf=frame.getParent and frame:getParent() or {args={}};
if(i==0)then
return pudelko_modul["Kod projektu tego projektu"]();
elseif(i==1)then
local parametry_modul=require("Module:Parametry");
local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"]
return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
elseif(i>1)then
local parametry_modul=require("Module:Parametry");
local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i]
return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
end;
end
function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
local pf=frame.getParent and frame:getParent() or {args={}};
local klucz_projektu;
local function domyslne_klucz(klucz_projektu)
local parametry_modul=require("Module:Parametry");
return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil)));
end;
if(i==0)then
return nil;
elseif(i==1)then
local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"];
return domyslne_klucz(klucz_projektu);
elseif(i>1)then
local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i];
return domyslne_klucz(klucz_projektu);
end;
end;
function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu));
return kod_jezyka,kod_projektu;
end;
function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy)
if(not bez_analizy)then
local parametry_modul=require("Module:Parametry");
if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then
return "";
elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then
return "Wikijunior";
elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]))
and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then
return "Project";
elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu")
or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])
and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])
and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"]))
and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu"))
or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])
and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"]))
and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then
return "Template";
elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu")
or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])
and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))
and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu"))
or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))
and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then
return "Module";
elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"])
and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then
return "User";
elseif(typ=="strona pliku")then
return "File";
elseif(typ=="strona kategorii")then
return "Category";
elseif(typ=="strona pomocy")then
return "Help";
elseif(typ=="strona komunikatu")then
return "MediaWiki";
elseif(typ=="strona specjalna")then
return "Special";
elseif(typ=="strona gadżetu")then
return "Gadget";
elseif(typ=="strona główna projektu")then
return "Project";
elseif(typ=="strona główna dla dzieci")then
return "Wikijunior";
end;
return;
end;
if(typ)then
if((typ=="artykuł")or(typ=="podręcznik"))then
return "";
elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then
return "Wikijunior";
elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then
return "Project";
elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then
return "Template";
elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then
return "Module";
elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then
return "User";
elseif(typ=="strona pliku")then
return "File";
elseif(typ=="strona kategorii")then
return "Category";
elseif(typ=="strona pomocy")then
return "Help";
elseif(typ=="strona komunikatu")then
return "MediaWiki";
elseif(typ=="strona specjalna")then
return "Special";
elseif(typ=="strona gadżetu")then
return "Gadget";
elseif(typ=="strona główna projektu")then
return "Project";
elseif(typ=="strona główna dla dzieci")then
return "Wikijunior";
end;
end;
end;
function p.Typ_jednostki_uzyskany_z_frame(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
local pf=frame.getParent and frame:getParent() or {args={}};
local typ;
if liczba_numer_jednostki~=0 then
typ=liczba_numer_jednostki and(frame.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki "..liczba_numer_jednostki]);
if(not typ)then
local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2);
if(nazwa_jednostki)then
if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then
local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1);
if(not nazwa_przesrzeni_nazw)then
typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
end;
end;
end;
end;
else
typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
end;
return typ,liczba_numer_jednostki;
end;
function p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pf=frame:getParent() or {args={},};
local function FuncTemp(liczba_numer_jednostki)
local dyskusja_parametr="dyskusja typu jednostki";
if(liczba_numer_jednostki==0)then
return frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr];
else
return ((frame.args[dyskusja_parametr.." "..liczba_numer_jednostki] or pf.args[dyskusja_parametr.." "..liczba_numer_jednostki])
or (frame.args[dyskusja_parametr.." i"] or pf.args[dyskusja_parametr.." i"])
or(frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr]));
end;
end;
local czy_dyskusja=FuncTemp(liczba_numer_jednostki);
local parametry_modul=require("Module:Parametry");
local czy_dyskusja=parametry_modul.CzyTak(czy_dyskusja);
return czy_dyskusja;
end;
function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i)
local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i);
local nazwa_przestrzeni_nazw=typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil;
if(nazwa_przestrzeni_nazw)then
local czy_dyskusja=p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i);
if(czy_dyskusja)then
if(nazwa_przestrzeni_nazw=="")then
return "Talk";
else
return nazwa_przestrzeni_nazw.." talk";
end;
else
return nazwa_przestrzeni_nazw;
end;
else
return nil;
end;
end;
function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu)
local parametry_modul=require("Module:Parametry");
local analiza=parametry_modul.CzyTak(frame.args["analiza"]);
local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i);
local uzyskana_przestrzen_nazw_od_typu_jednostki;
local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki);
if((not analiza)and(typ))then
if(typ~="")then
uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args);
if(uzyskana_przestrzen_nazw_od_typu_jednostki)then
if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then
return typ;
end;
else
return "(błąd typu jednostki)";
end;
end;
end;
local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,liczba_numer_jednostki,numer_argorytmu);
local nazwy_modul=require("Module:Nazwy");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local czy_blad_nazwa_przestrzeni_nazw;
if(czy_biezaca)then
czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
else
czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
end;
if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end;
nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw;
---
---
if((not analiza)and(typ))then
if(typ~="")then
---typ jednostki
if(uzyskana_przestrzen_nazw_od_typu_jednostki)then
if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then
if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then
return typ;
else
return "(błąd niezgodności)";
end;
end;
else
return "(błąd typu jednostki)";
end;
end;
end;
local function Typ_jednostki()
if(nazwa_jednostki~="")then
--local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki);
--local klucz_projektu=kod_projektu..":"..kod_jezyka;
local pudelko_modul=require("Module:Pudełko");
local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki;
if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end;
local nazwy_modul=require("Module:Nazwy")
pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw,kod_jezyka,kod_projektu);
if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then
local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka);
if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end;
local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka);
local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej;
if(nazwa_strony_glownej_dla_dzieci_uzyskana)then
if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end;
nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end;
end;
end;
local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu);
if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end;
local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu);
local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej;
if(nazwa_strony_glownej_projektu_uzyskana)then
if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end;
nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end;
end;
if(norm_przed_lub_dyskusji=="")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "artykuł";
else
local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
if(it)then return "podręcznik";else return "artykuł";end;
end;
elseif(norm_przed_lub_dyskusji=="Wikijunior")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "artykuł dla dzieci";
else
local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end;
end;
elseif(norm_przed_lub_dyskusji=="User")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then
return "strona użytkownika";
else
local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$")
if(czy_podstrony)then
return "strona główna użytkownika";
else
if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then
local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$");
if(czy_ksiazka)then
return "podręcznik użytkownika";
else
return "artykuł użytkownika";
end;
else
return "jednostka użytkownika";
end;
else
return "strona użytkownika";
end;
end;
end;
elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku";
elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii";
elseif(norm_przed_lub_dyskusji=="Project")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end;
if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then
if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then
local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$");
if(czy_ksiazka)then
return "podręcznik brudnopisu projektu";
else
return "artykuł brudnopisu projektu";
end;
else
return "jednostka brudnopisu projektu";
end;
else
return "strona brudnopisu projektu";
end;
else
return "strona projektu";
end;
elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy";
elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu";
elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna";
elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu";
elseif(nazwa_przestrzeni_nazw=="Template")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end;
local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix)
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return szablon;
else
if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then
return opis_szablonu;
else
if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then
local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$");
if(czy_brudnopis)then
local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename);
if(czy_istnieje_strona==1)then
local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{
[1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>',
[2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0
};
if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end;
else
return szablon;
end;
else
return strona_szablonu;
end;
else
return szablon;
end;
end;
end;
end;
if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then
return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/");
else
return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu","");
end;
elseif(nazwa_przestrzeni_nazw=="Module")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end;
if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "strona brudnopisu modułu"
else
local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then
return "strona brudnopisu opisu modułu";
else
return "strona brudnopisu modułu";
end;
end;
else
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "strona modułu"
else
local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then
return "strona opisu modułu";
else
return "strona modułu";
end;
end;
end;
else return "inne";
end;
end;
return "inne";
end;
local typ_jednostki=Typ_jednostki();
if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then
if(typ_jednostki==typ)then
return typ_jednostki;
elseif(nazwa_jednostki_podana)then
return "(błąd parametrów pudełkowych)"
else
return "(błąd typu jednostki)";
end;
end;
return typ_jednostki;
end;
function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu,co_ma_liczyc)
local nazwa_przestrzeni_fun,nazwa_jednostki_fun;
if(kod_liczbowy_przestrzeni_nazw==0)then
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
nazwa_jednostki_fun="Nazwa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw==1)then
nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw";
nazwa_jednostki_fun="Nazwa przedmiotowa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw==2)then
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji"
nazwa_jednostki_fun="Nazwa dyskusji jednostki";
else
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
nazwa_jednostki_fun="Nazwa jednostki";
end;
local pudelko_modul=require("Module:Pudełko");
if(not numer_argorytmu)then
if((not i)or(i==0))then
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul["Nazwa jednostki"](frame);
end;
else
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
local nazwa_jednostki=(n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
return (n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
end;
end;
else
if(numer_argorytmu==0)then
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul["Nazwa jednostki"](frame,i);
end;
else
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
end;
end;
end;
end;
function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki)
local pf=frame.getParent and frame:getParent() or {args={}};
return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)]
end;
function p.Nazwa_jednostki(frame,i)
local pf=frame.getParent and frame:getParent() or {args={}};
local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2);
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
if(nazwa_jednostki)then
nazwa_jednostki=mw.text.trim(nazwa_jednostki);
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:","");
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1");
local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$");
if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1");
end;
else
local nazwy_modul=require("Module:Nazwy");
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
local parametry_modul=require("Module:Parametry");
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
end;
function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac)
local pf=frame.getParent and frame:getParent() or {args={}};
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
local nazwa_jednostki;
local bool_numer_jednostki=(liczba_numer_jednostki~=0);
local function Nazwa_jednostki()
if bool_numer_jednostki then
nazwa_jednostki=frame.args["nazwa jednostki "..liczba_numer_jednostki] or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki];
else
nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"];
end;
return nazwa_jednostki;
end;
local function Nazwa_przestrzeni_nazw()
local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki])
or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
return nazwa_przestrzeni_nazw;
end;
if(not co_podac)then
return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki;
elseif(co_podac==1)then
return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki;
elseif(co_podac==2)then
return Nazwa_jednostki(),liczba_numer_jednostki;
else
return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki;
end;
end;
function p.Jaka_nazwa_jednostki(frame,i,jaka)
local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i);
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki);
----
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]();
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true);
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]();
end;
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(jaka)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak"};
else
nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
if(czy_biezaca)then
nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw};
else
nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
if(not mw.ustring.match(nazwa_jednostki,"^:"))then
if(nazwa_przestrzeni_nazw~="")then
if(czy_biezaca)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then
return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
end;
elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then
return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
end;
end;
else
local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw==template_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==template_prze)then
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
elseif(nazwa_przestrzeni_nazw==module_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==module_prze)then
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
end;
local parametry_modul=require("Module:Parametry");
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
else
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu)
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca)then
jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw};
else
jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter)
if(czy_biezaca)then
nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter};
else
nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then
return true;
end;
return false;
end;
for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do
if(type(licznik)=="number")then
local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*");
if(nazwa_przestrzeni_nazw_element and klucze_element)then
local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false);
local wiki_modul=require("Module:Wiki");
for _,klucz_element in ipairs(tab_klucze)do
local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element);
if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then
local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element);
if(wynik)then return true;end;
end;
end;
else
local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw);
if(wynik)then return true;end;
end;
end;
end;
return false;
end;
function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt)
local parametry_modul=require("Module:Parametry");
local p=parametry_modul.PobierzFrameEwentualnieParent(frame);
local pudelko_modul=require("Module:Pudełko");
local wiki_modul=require("Module:Wiki");
local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"]();
local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"]();
for i,_ in pairs(p.args)do
if(type(i)=="number")then
local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i);
local kod_jezyka=pudelko_modul["Kod języka"](frame,i);
local kod_projektu=pudelko_modul["kod projektu"](frame,i);
local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then
return "tak";
end;
end;
end;
return;
end;
return p;
apm3sy6hzu7eevcsn0xn9kmg6g5ojfv
540362
540359
2026-04-23T11:30:00Z
Persino
2851
540362
Scribunto
text/plain
local p={};
function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu)
local strona=require("Module:Pudełko")["Strona główna tego projektu"]();
local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu};
if(odpowiednik_strony)then
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
else
local pudelko_modul=require("Module:Pudełko");
if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then
return strona;
else
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu]
or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu];
return czy_w_wikidanych and "Main Page" or nil;
end;
end;
end;
function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka)
local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"]();
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end;
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu};
if(odpowiednik_strony)then
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,};
else
return "Wikijunior";
end;
end;
function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu)
local pf=frame.getParent and frame:getParent() or {args={}};
local strona_glowna_projektu;
if(i~=0)then
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"]();
if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then
strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
else
strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i])
end;
else
strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"]
end;
local parametry_modul=require("Module:Parametry");
return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil);
end;
function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka)
local pf=frame.getParent and frame:getParent() or {args={}};
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_dla_dzieci;
if(i~=0)then
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
if(kod_jezyka==kod_jezyka_tego_projektu)then
strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
else
strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i])
end;
else
strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"]
end;
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local parametry_modul=require("Module:Parametry");
return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil);
end;
function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu)
local nazwa_przestrzeni_nazw_blad;
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(normmalna_przedmiotwa_dyskusji==0)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(normmalna_przedmiotwa_dyskusji==1)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(normmalna_przedmiotwa_dyskusji==2)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
else
if(czy_biezaca)then
nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
end;
return nazwa_przestrzeni_nazw_blad
end;
function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki)
local pf=frame.getParent and frame:getParent() or {args={}};
local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki);
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local czy_blad_nazwy_przestrzeni_nazw;
local typ;
if(kod_liczbowy_przestrzeni_nazw==1)then
typ="przedmiotowa";
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
elseif(kod_liczbowy_przestrzeni_nazw==2)then
if(czy_biezaca_wiki)then
typ="dyskusja";
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
else
if(czy_biezaca_wiki)then
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
end;
if(czy_blad_nazwy_przestrzeni_nazw)then
return czy_blad_nazwy_przestrzeni_nazw;
else
if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then
local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]);
if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then
local czy_blad_nazwa_przestrzeni_nazw_alternatywnej;
if(czy_biezaca_wiki)then
local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(typ)then tab_parametry[typ]="tak";end;
czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np(tab_parametry);
else
local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(typ)then tab_parametry[typ]="tak";end;
czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane(tab_parametry);
end;
return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)";
else
return "(błąd)";
end;
else
local parametry_modul=require("Module:Parametry");
nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",};
if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
return nazwa_przestrzeni_nazw;
else
return "(błąd)";
end;
end;
end;
end;
function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i)
local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i);
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki);
local nazwy_modul=require("Module:Nazwy");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni_nazw_blad;
local parametry_modul=require("Module:Parametry");
if(czy_biezaca_wiki)then
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]();
nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_jednostki)then
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1");
local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$");
if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1");
end;
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]();
end;
else
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true);
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw;
if(not mw.ustring.match(nazwa_jednostki,"^:"))then
if(nazwa_przestrzeni_nazw~="")then
if(czy_biezaca_wiki)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then
local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then
nazwa_przestrzeni_nazw=nazwy_np_modul.Template;
end;
elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then
local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then
nazwa_przestrzeni_nazw=nazwy_np_modul.Module;
end;
end;
else
local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw==template_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==template_prze)then
nazwa_przestrzeni_nazw=template_prze;
end;
elseif(nazwa_przestrzeni_nazw==module_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==module_prze)then
nazwa_przestrzeni_nazw=module_prze;
end;
end;
end;
if(not nazwa_przestrzeni_nazw_blad)then
if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then
local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]);
if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
if(czy_biezaca_wiki)then
local nazwy_modul=require("Module:Nazwy");
local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
return czy_blad_nazwy_przestrzeni_nazw or "(błąd)";
else
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
return nazwa_przestrzeni_nazw_blad2 or "(błąd)";
end;
else
return "(błąd)";
end;
else
local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw);
if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then
return wytrimowana_nazwa_przestrzeni_nazw;
else
return "(błąd)";
end;
end;
else
return nazwa_przestrzeni_nazw;
end;
else
return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local nazwa_przestrzeni_nazw=require("Module:Pudełko")["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca)then
return nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw};
else
return nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Kod_jezyka(frame,i,wartosc_domyslna)
local pudelko_modul=require("Module:Pudełko");
if(not i)then return pudelko_modul["Kod języka tego projektu"]();end;
local pf=frame.getParent and frame:getParent() or {args={}};
if(i==0)then
return pudelko_modul["Kod języka tego projektu"]();
elseif(i==1)then
local parametry_modul=require("Module:Parametry");
local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"]
return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
elseif(i>1)then
local parametry_modul=require("Module:Parametry");
local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i]
return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
end;
end
function p.Kod_projektu(frame,i,wartosc_domyslna)
local pudelko_modul=require("Module:Pudełko");
if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end;
local pf=frame.getParent and frame:getParent() or {args={}};
if(i==0)then
return pudelko_modul["Kod projektu tego projektu"]();
elseif(i==1)then
local parametry_modul=require("Module:Parametry");
local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"]
return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
elseif(i>1)then
local parametry_modul=require("Module:Parametry");
local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i]
return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil);
end;
end
function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
local pf=frame.getParent and frame:getParent() or {args={}};
local klucz_projektu;
local function domyslne_klucz(klucz_projektu)
local parametry_modul=require("Module:Parametry");
return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil)));
end;
if(i==0)then
return nil;
elseif(i==1)then
local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"];
return domyslne_klucz(klucz_projektu);
elseif(i>1)then
local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i];
return domyslne_klucz(klucz_projektu);
end;
end;
function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu)
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu));
return kod_jezyka,kod_projektu;
end;
function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy)
if(not bez_analizy)then
local parametry_modul=require("Module:Parametry");
if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then
return "";
elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then
return "Wikijunior";
elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]))
and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then
return "Project";
elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu")
or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])
and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])
and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"]))
and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu"))
or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])
and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"]))
and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then
return "Template";
elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu")
or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])
and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))
and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu"))
or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"])
and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))
and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then
return "Module";
elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"])
and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then
return "User";
elseif(typ=="strona pliku")then
return "File";
elseif(typ=="strona kategorii")then
return "Category";
elseif(typ=="strona pomocy")then
return "Help";
elseif(typ=="strona komunikatu")then
return "MediaWiki";
elseif(typ=="strona specjalna")then
return "Special";
elseif(typ=="strona gadżetu")then
return "Gadget";
elseif(typ=="strona główna projektu")then
return "Project";
elseif(typ=="strona główna dla dzieci")then
return "Wikijunior";
end;
return;
end;
if(typ)then
if((typ=="artykuł")or(typ=="podręcznik"))then
return "";
elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then
return "Wikijunior";
elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then
return "Project";
elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then
return "Template";
elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then
return "Module";
elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then
return "User";
elseif(typ=="strona pliku")then
return "File";
elseif(typ=="strona kategorii")then
return "Category";
elseif(typ=="strona pomocy")then
return "Help";
elseif(typ=="strona komunikatu")then
return "MediaWiki";
elseif(typ=="strona specjalna")then
return "Special";
elseif(typ=="strona gadżetu")then
return "Gadget";
elseif(typ=="strona główna projektu")then
return "Project";
elseif(typ=="strona główna dla dzieci")then
return "Wikijunior";
end;
end;
end;
function p.Typ_jednostki_uzyskany_z_frame(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
local pf=frame.getParent and frame:getParent() or {args={}};
local typ;
if liczba_numer_jednostki~=0 then
typ=liczba_numer_jednostki
and(
(frame.args["typ jednostki "..liczba_numer_jednostki] or frame.args["typ jednostki i"])
or (pf.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki i"])
);
if(not typ)then
local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2);
if(nazwa_jednostki)then
if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then
local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1);
if(not nazwa_przesrzeni_nazw)then
typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
end;
end;
end;
end;
else
typ=frame.args["typ jednostki"] or pf.args["typ jednostki"];
end;
return typ,liczba_numer_jednostki;
end;
function p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i)
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0);
local pf=frame:getParent() or {args={},};
local function FuncTemp(liczba_numer_jednostki)
local dyskusja_parametr="dyskusja typu jednostki";
if(liczba_numer_jednostki==0)then
return frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr];
else
return ((frame.args[dyskusja_parametr.." "..liczba_numer_jednostki] or pf.args[dyskusja_parametr.." "..liczba_numer_jednostki])
or (frame.args[dyskusja_parametr.." i"] or pf.args[dyskusja_parametr.." i"])
or(frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr]));
end;
end;
local czy_dyskusja=FuncTemp(liczba_numer_jednostki);
local parametry_modul=require("Module:Parametry");
local czy_dyskusja=parametry_modul.CzyTak(czy_dyskusja);
return czy_dyskusja;
end;
function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i)
local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i);
local nazwa_przestrzeni_nazw=typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil;
if(nazwa_przestrzeni_nazw)then
local czy_dyskusja=p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i);
if(czy_dyskusja)then
if(nazwa_przestrzeni_nazw=="")then
return "Talk";
else
return nazwa_przestrzeni_nazw.." talk";
end;
else
return nazwa_przestrzeni_nazw;
end;
else
return nil;
end;
end;
function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu)
local parametry_modul=require("Module:Parametry");
local analiza=parametry_modul.CzyTak(frame.args["analiza"]);
local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i);
local uzyskana_przestrzen_nazw_od_typu_jednostki;
local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki);
if((not analiza)and(typ))then
if(typ~="")then
uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args);
if(uzyskana_przestrzen_nazw_od_typu_jednostki)then
if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then
return typ;
end;
else
return "(błąd typu jednostki)";
end;
end;
end;
local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,liczba_numer_jednostki,numer_argorytmu);
local nazwy_modul=require("Module:Nazwy");
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local czy_blad_nazwa_przestrzeni_nazw;
if(czy_biezaca)then
czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
else
czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
end;
if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end;
nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw;
---
---
if((not analiza)and(typ))then
if(typ~="")then
---typ jednostki
if(uzyskana_przestrzen_nazw_od_typu_jednostki)then
if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then
if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then
return typ;
else
return "(błąd niezgodności)";
end;
end;
else
return "(błąd typu jednostki)";
end;
end;
end;
local function Typ_jednostki()
if(nazwa_jednostki~="")then
--local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki);
--local klucz_projektu=kod_projektu..":"..kod_jezyka;
local pudelko_modul=require("Module:Pudełko");
local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki;
if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end;
local nazwy_modul=require("Module:Nazwy")
pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw,kod_jezyka,kod_projektu);
if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then
local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka);
if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end;
local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka);
local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej;
if(nazwa_strony_glownej_dla_dzieci_uzyskana)then
if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end;
nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end;
end;
end;
local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu);
if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end;
local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu);
local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej;
if(nazwa_strony_glownej_projektu_uzyskana)then
if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end;
nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end;
end;
if(norm_przed_lub_dyskusji=="")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "artykuł";
else
local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
if(it)then return "podręcznik";else return "artykuł";end;
end;
elseif(norm_przed_lub_dyskusji=="Wikijunior")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "artykuł dla dzieci";
else
local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$");
if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end;
end;
elseif(norm_przed_lub_dyskusji=="User")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then
return "strona użytkownika";
else
local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$")
if(czy_podstrony)then
return "strona główna użytkownika";
else
if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then
local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$");
if(czy_ksiazka)then
return "podręcznik użytkownika";
else
return "artykuł użytkownika";
end;
else
return "jednostka użytkownika";
end;
else
return "strona użytkownika";
end;
end;
end;
elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku";
elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii";
elseif(norm_przed_lub_dyskusji=="Project")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end;
if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then
if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then
local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$");
if(czy_ksiazka)then
return "podręcznik brudnopisu projektu";
else
return "artykuł brudnopisu projektu";
end;
else
return "jednostka brudnopisu projektu";
end;
else
return "strona brudnopisu projektu";
end;
else
return "strona projektu";
end;
elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy";
elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu";
elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna";
elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu";
elseif(nazwa_przestrzeni_nazw=="Template")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end;
local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix)
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return szablon;
else
if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then
return opis_szablonu;
else
if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then
local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$");
if(czy_brudnopis)then
local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename);
if(czy_istnieje_strona==1)then
local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{
[1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>',
[2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0
};
if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end;
else
return szablon;
end;
else
return strona_szablonu;
end;
else
return szablon;
end;
end;
end;
end;
if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then
return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/");
else
return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu","");
end;
elseif(nazwa_przestrzeni_nazw=="Module")then
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end;
if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "strona brudnopisu modułu"
else
local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then
return "strona brudnopisu opisu modułu";
else
return "strona brudnopisu modułu";
end;
end;
else
if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"])
or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then
return "strona modułu"
else
local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki;
pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony);
if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then
return "strona opisu modułu";
else
return "strona modułu";
end;
end;
end;
else return "inne";
end;
end;
return "inne";
end;
local typ_jednostki=Typ_jednostki();
if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then
if(typ_jednostki==typ)then
return typ_jednostki;
elseif(nazwa_jednostki_podana)then
return "(błąd parametrów pudełkowych)"
else
return "(błąd typu jednostki)";
end;
end;
return typ_jednostki;
end;
function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu,co_ma_liczyc)
local nazwa_przestrzeni_fun,nazwa_jednostki_fun;
if(kod_liczbowy_przestrzeni_nazw==0)then
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
nazwa_jednostki_fun="Nazwa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw==1)then
nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw";
nazwa_jednostki_fun="Nazwa przedmiotowa jednostki";
elseif(kod_liczbowy_przestrzeni_nazw==2)then
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji"
nazwa_jednostki_fun="Nazwa dyskusji jednostki";
else
nazwa_przestrzeni_fun="Nazwa przestrzeni nazw";
nazwa_jednostki_fun="Nazwa jednostki";
end;
local pudelko_modul=require("Module:Pudełko");
if(not numer_argorytmu)then
if((not i)or(i==0))then
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul["Nazwa jednostki"](frame);
end;
else
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
local nazwa_jednostki=(n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i);
return (n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
end;
end;
else
if(numer_argorytmu==0)then
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul["Nazwa jednostki"](frame,i);
end;
else
if((not co_ma_liczyc)or(co_ma_liczyc==0))then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
return nazwa_przestrzeni_nazw,nazwa_jednostki;
elseif(co_ma_liczyc==1)then
local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i);
return nazwa_przestrzeni_nazw;
elseif(co_ma_liczyc==2)then
return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i);
end;
end;
end;
end;
function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki)
local pf=frame.getParent and frame:getParent() or {args={}};
return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)]
end;
function p.Nazwa_jednostki(frame,i)
local pf=frame.getParent and frame:getParent() or {args={}};
local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2);
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
if(nazwa_jednostki)then
nazwa_jednostki=mw.text.trim(nazwa_jednostki);
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:","");
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1");
local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$");
if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1");
end;
else
local nazwy_modul=require("Module:Nazwy");
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
local parametry_modul=require("Module:Parametry");
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
end;
function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac)
local pf=frame.getParent and frame:getParent() or {args={}};
local numer_jednostki=i or frame.args["numer jednostki"];
local liczba_numer_jednostki=tonumber(numer_jednostki) or 0;
local nazwa_jednostki;
local bool_numer_jednostki=(liczba_numer_jednostki~=0);
local function Nazwa_jednostki()
if bool_numer_jednostki then
nazwa_jednostki=frame.args["nazwa jednostki "..liczba_numer_jednostki] or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki];
else
nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"];
end;
return nazwa_jednostki;
end;
local function Nazwa_przestrzeni_nazw()
local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki])
or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
return nazwa_przestrzeni_nazw;
end;
if(not co_podac)then
return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki;
elseif(co_podac==1)then
return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki;
elseif(co_podac==2)then
return Nazwa_jednostki(),liczba_numer_jednostki;
else
return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki;
end;
end;
function p.Jaka_nazwa_jednostki(frame,i,jaka)
local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i);
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki);
----
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]();
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true);
else
nazwa_jednostki=nazwy_modul["NAZWASTRONY"]();
end;
local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki);
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(jaka)then
if(czy_biezaca)then
nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak"};
else
nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
if(czy_biezaca)then
nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw};
else
nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
if(not mw.ustring.match(nazwa_jednostki,"^:"))then
if(nazwa_przestrzeni_nazw~="")then
if(czy_biezaca)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then
return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
end;
elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then
return nazwy_modul["NAZWASTRONY"](nazwa_jednostki);
end;
end;
else
local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw==template_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==template_prze)then
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
elseif(nazwa_przestrzeni_nazw==module_prze)then
local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(nazwa_przestrzeni_nazw_d==module_prze)then
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
end;
local parametry_modul=require("Module:Parametry");
nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",};
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
else
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
else
return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu)
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca)then
jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw};
else
jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter)
if(czy_biezaca)then
nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter};
else
nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then
return true;
end;
return false;
end;
for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do
if(type(licznik)=="number")then
local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*");
if(nazwa_przestrzeni_nazw_element and klucze_element)then
local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false);
local wiki_modul=require("Module:Wiki");
for _,klucz_element in ipairs(tab_klucze)do
local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element);
if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then
local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element);
if(wynik)then return true;end;
end;
end;
else
local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw);
if(wynik)then return true;end;
end;
end;
end;
return false;
end;
function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt)
local parametry_modul=require("Module:Parametry");
local p=parametry_modul.PobierzFrameEwentualnieParent(frame);
local pudelko_modul=require("Module:Pudełko");
local wiki_modul=require("Module:Wiki");
local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"]();
local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"]();
for i,_ in pairs(p.args)do
if(type(i)=="number")then
local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i);
local kod_jezyka=pudelko_modul["Kod języka"](frame,i);
local kod_projektu=pudelko_modul["kod projektu"](frame,i);
local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then
return "tak";
end;
end;
end;
return;
end;
return p;
jwma87rck2i1ylf4fx1c79zzsgnifj3
Wikibooks:Mechanizm MediaWiki
4
60755
540287
535779
2026-04-22T18:26:47Z
Persino
2851
/* Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} */
540287
wikitext
text/x-wiki
<noinclude><!--
-->{{StandardowaStronaStart
| nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Wstęp}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>{{Spis treści}}
Przedstawimy tutaj problemy z mechanizmem MediaWiki, poczynając od opisu szablonów i modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w zastosowaniach również do wikikodu, na polskim {{NAZWASERWISU|po=ie|wikipedia=tak|link=tak}}.
== Szablony ==
Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NAZWASERWISU|po=ie|link=tak}}, w postaci listy.
=== Opis wizualny ===
* {{lr|Szablony}} - strona główna zbioru wszystkich szablonów, opisu ich, wizualnego i opisowego.
** {{lru|Szablony/Ogólne}}, {{lru|Szablony/Podręcznikowe}}, {{lru|Szablony/Książkowe}}, {{lru|Szablony/Tekst}}, {{lru|Szablony/Zawartość}}, {{lru|Szablony/Nagłówki}}, {{lru|Szablony/Przekierowania}}, {{lru|Szablony/Języki}}, {{lru|Szablony/Liczby}}, {{lru|Szablony/Kategorie}}, {{lru|Szablony/Opisy}}, {{lru|Szablony/Znaczniki}}, {{lru|Szablony/Szablony opływania}}, {{lru|Szablony/Stronicowe}}, {{lru|Szablony/Kontenerowe}}, {{lru|Szablony/Elastyczne}}, {{lru|Szablony/Infoboksy - Prolog}}, {{lru|Szablony/Infoboksy - Tom I}}, {{lru|Szablony/Infoboksy - Tom II}}, {{lru|Szablony/Infoboksy - Tom III}}, {{lru|Szablony/Infoboksy - Tom IV}}, {{lru|Szablony/Infoboksy - Tom V}}, {{lru|Szablony/Infoboksy - Tom VI}}, {{lru|Szablony/Infoboksy - Komponenty}}, {{lru|Szablony/Infoboksy - Komponenty (organizmy żywe)}}, {{lru|Szablony/Porządkowe}}, {{lru|Szablony/Źródła artykułów}}, {{lru|Szablony/Linki}}, {{lru|Szablony/Linki inteligentne}}, {{lru|Szablony/Do usunięcia}}, {{lru|Szablony/Nawigacja}}, {{lru|Szablony/Media}}, {{lru|Szablony/Grafika}}, {{lru|Szablony/Licencjonowanie}}, {{lru|Szablony/Techniczne}}, {{lru|Szablony/Wikipedysta}}, {{lru|Szablony/Dyskusja Wikipedysty}}, {{lru|Szablony/MediaWiki}} i {{lru|Szablony/Systemowe}}.
=== Opis tekstowy ===
* {{lp|Spis treści}} - spis treści pomocy, nie tylko szablonów, czy modułów.
** {{lpu|Spis treści/Szablony - Tom I}}, {{lpu|Spis treści/Szablony - Tom II}}, {{lpu|Spis treści/Szablony - Tom III}} i {{lpu|Spis treści/Szablony - Tom IV}}.
== Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ==
{{Osobny artykuł|{{Ns:Project}}:Moduły|obserwowane=Moduły}}
* Moduły podstawowe
** {{m|Parametry}} - {{lru|Moduły/Parametry}} procedur na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
** {{m|Html}} - {{lru|Moduły/Html}} procedur na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
** {{m|Nazwy}} - {{lru|Moduły/Nazwy}} ({{lru|Moduły/Nazwy - Tom I}}, {{lru|Moduły/Nazwy - Tom II}}, {{lru|Moduły/Nazwy - Tom III}} i {{lru|Moduły/Nazwy - Tom IV}}) procedur operujących na nazwach MediaWiki projektu.
*** {{m|Nazwy/Np}} - {{lru|Moduły/Nazwy/Np}} zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
** {{m|Książkowe}} - {{lru|Moduły/Książkowe}} procedur na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
** {{m|Pudełko}} - {{lru|Moduły/Pudełko}} procedur opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
*** {{m|Pudełko/Pomocne}} - {{lru|Moduły/Pudełko/Pomocne}}
*** {{m|Pudełko/Potrzebne}} - {{lru|Moduły/Pudełko/Potrzebne}}
*** {{m|Pudełko/ParametryCechy}} - {{lru|Moduły/Pudełko/ParametryCechy}}
** {{m|Ramka}} - {{lru|Moduły/Ramka}} procedur ramkowanych, w ramach których są wykonywane pewne operacje.
** {{m|Specjalne}} - {{lru|Moduły/Specjalne}} procedur do specjalnych zastosowań operacji na obiektach.
** {{m|StronicowyParser}} - {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{m|Szeregi}} - {{lru|Moduły/Szeregi}} procedur do obsługi na tekstach i kolejnych liniach w tekście, a także do wyszukań tam elementów spełniające pewne kryteria funkcyjne.
** {{m|Szablonowe}} - {{lru|Moduły/Szablonowe}} procedur służących do parsowania tekstu nawet z podanych stron.
** {{m|Techniczne}} - {{lru|Moduły/Techniczne}} procedur do operacji technicznych na tekście.
** {{m|Wiki}} - {{lru|Moduły/Wiki}} procedur robiący czynności na obiektach wikidanych.
* Moduły standardowe
** {{m|Kategorie}} - {{lru|Moduły/Kategorie}} procedur operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
** {{m|Linki}} - {{lru|Moduły/Linki}} procedur obsługujących różnego rodzaju linki.
** {{m|Łatki}} - {{lru|Moduły/Łatki}} procedur łatające braki w mechanizmie MediaWiki.
** {{m|Skrót}} - {{lru|Moduły/Skrót}} procedur łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
** {{m|Sprawdź}} - {{lru|Moduły/Sprawdź}} procedur oferujące sprawdzanie danych uzyskanych ze strony.
* Specjalistyczne
** {{m|Tabela}} - {{lru|Moduły/Tabela}} procedur tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
** {{m|Sekcja referencyjna}} - {{lru|Moduły/Sekcja referencyjna}} procedur linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
** {{m|Licencja}} - {{lru|Moduły/Licencja}} procedur wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
** {{m|Przypisy}} - {{lru|Moduły/Przypisy}} procedur wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
** {{m|Dopracować}} - {{lru|Moduły/Dopracować}} procedur wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!--
--></noinclude>
pmzkxygofwq7a9a6x68jfounzrmo7bs
540288
540287
2026-04-22T18:37:06Z
Persino
2851
/* Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} */
540288
wikitext
text/x-wiki
<noinclude><!--
-->{{StandardowaStronaStart
| nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Wstęp}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>{{Spis treści}}
Przedstawimy tutaj problemy z mechanizmem MediaWiki, poczynając od opisu szablonów i modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w zastosowaniach również do wikikodu, na polskim {{NAZWASERWISU|po=ie|wikipedia=tak|link=tak}}.
== Szablony ==
Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NAZWASERWISU|po=ie|link=tak}}, w postaci listy.
=== Opis wizualny ===
* {{lr|Szablony}} - strona główna zbioru wszystkich szablonów, opisu ich, wizualnego i opisowego.
** {{lru|Szablony/Ogólne}}, {{lru|Szablony/Podręcznikowe}}, {{lru|Szablony/Książkowe}}, {{lru|Szablony/Tekst}}, {{lru|Szablony/Zawartość}}, {{lru|Szablony/Nagłówki}}, {{lru|Szablony/Przekierowania}}, {{lru|Szablony/Języki}}, {{lru|Szablony/Liczby}}, {{lru|Szablony/Kategorie}}, {{lru|Szablony/Opisy}}, {{lru|Szablony/Znaczniki}}, {{lru|Szablony/Szablony opływania}}, {{lru|Szablony/Stronicowe}}, {{lru|Szablony/Kontenerowe}}, {{lru|Szablony/Elastyczne}}, {{lru|Szablony/Infoboksy - Prolog}}, {{lru|Szablony/Infoboksy - Tom I}}, {{lru|Szablony/Infoboksy - Tom II}}, {{lru|Szablony/Infoboksy - Tom III}}, {{lru|Szablony/Infoboksy - Tom IV}}, {{lru|Szablony/Infoboksy - Tom V}}, {{lru|Szablony/Infoboksy - Tom VI}}, {{lru|Szablony/Infoboksy - Komponenty}}, {{lru|Szablony/Infoboksy - Komponenty (organizmy żywe)}}, {{lru|Szablony/Porządkowe}}, {{lru|Szablony/Źródła artykułów}}, {{lru|Szablony/Linki}}, {{lru|Szablony/Linki inteligentne}}, {{lru|Szablony/Do usunięcia}}, {{lru|Szablony/Nawigacja}}, {{lru|Szablony/Media}}, {{lru|Szablony/Grafika}}, {{lru|Szablony/Licencjonowanie}}, {{lru|Szablony/Techniczne}}, {{lru|Szablony/Wikipedysta}}, {{lru|Szablony/Dyskusja Wikipedysty}}, {{lru|Szablony/MediaWiki}} i {{lru|Szablony/Systemowe}}.
=== Opis tekstowy ===
* {{lp|Spis treści}} - spis treści pomocy, nie tylko szablonów, czy modułów.
** {{lpu|Spis treści/Szablony - Tom I}}, {{lpu|Spis treści/Szablony - Tom II}}, {{lpu|Spis treści/Szablony - Tom III}} i {{lpu|Spis treści/Szablony - Tom IV}}.
== Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ==
{{Osobny artykuł|{{Ns:Project}}:Moduły|obserwowane=Moduły}}
* Moduły podstawowe
** {{m|Parametry}} - {{lru|Moduły/Parametry}} procedur na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
** {{m|Html}} - {{lru|Moduły/Html}} procedur na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
** {{m|Nazwy}} - {{lru|Moduły/Nazwy}} ({{lru|Moduły/Nazwy - Tom I}}, {{lru|Moduły/Nazwy - Tom II}}, {{lru|Moduły/Nazwy - Tom III}} i {{lru|Moduły/Nazwy - Tom IV}}) procedur operujących na nazwach MediaWiki projektu.
*** {{m|Nazwy/Np}} - {{lru|Moduły/Nazwy/Np}} zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
** {{m|Książkowe}} - {{lru|Moduły/Książkowe}} procedur na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
** {{m|Pudełko}} - {{lru|Moduły/Pudełko}} procedur opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
*** {{m|Pudełko/Pomocne}} - {{lru|Moduły/Pudełko/Pomocne}} procedur potrzebnych do implementacji funkcji modułu {{m|Pudełko}} dotyczące różnych nazw.
*** {{m|Pudełko/Potrzebne}} - {{lru|Moduły/Pudełko/Potrzebne}} procedur potrzebnych do implementacji funkcji modułu {{m|Pudełko}} dotyczące {{m|Pudełko|Ogólne pudełko}}.
*** {{m|Pudełko/ParametryCechy}} - {{lru|Moduły/Pudełko/ParametryCechy}} - zestaw funkcji potrzebnych do budowy szablonu {{s|Szablonowy opis pudełka}}.
** {{m|Ramka}} - {{lru|Moduły/Ramka}} procedur ramkowanych, w ramach których są wykonywane pewne operacje.
** {{m|Specjalne}} - {{lru|Moduły/Specjalne}} procedur do specjalnych zastosowań operacji na obiektach.
** {{m|StronicowyParser}} - {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{m|Szeregi}} - {{lru|Moduły/Szeregi}} procedur do obsługi na tekstach i kolejnych liniach w tekście, a także do wyszukań tam elementów spełniające pewne kryteria funkcyjne.
** {{m|Szablonowe}} - {{lru|Moduły/Szablonowe}} procedur służących do parsowania tekstu nawet z podanych stron.
** {{m|Techniczne}} - {{lru|Moduły/Techniczne}} procedur do operacji technicznych na tekście.
** {{m|Wiki}} - {{lru|Moduły/Wiki}} procedur robiący czynności na obiektach wikidanych.
* Moduły standardowe
** {{m|Kategorie}} - {{lru|Moduły/Kategorie}} procedur operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
** {{m|Linki}} - {{lru|Moduły/Linki}} procedur obsługujących różnego rodzaju linki.
** {{m|Łatki}} - {{lru|Moduły/Łatki}} procedur łatające braki w mechanizmie MediaWiki.
** {{m|Skrót}} - {{lru|Moduły/Skrót}} procedur łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
** {{m|Sprawdź}} - {{lru|Moduły/Sprawdź}} procedur oferujące sprawdzanie danych uzyskanych ze strony.
* Specjalistyczne
** {{m|Tabela}} - {{lru|Moduły/Tabela}} procedur tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
** {{m|Sekcja referencyjna}} - {{lru|Moduły/Sekcja referencyjna}} procedur linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
** {{m|Licencja}} - {{lru|Moduły/Licencja}} procedur wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
** {{m|Przypisy}} - {{lru|Moduły/Przypisy}} procedur wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
** {{m|Dopracować}} - {{lru|Moduły/Dopracować}} procedur wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!--
--></noinclude>
k8s1b6u80tmf1nstybd8cpix9shvupq
Wikibooks:Moduły/Pudełko
4
63479
540289
540285
2026-04-22T18:59:26Z
Persino
2851
/* {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} */
540289
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} ==
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+);}}}}.
Skrótowa definicja funkcji:
<syntaxhighlight lang="lua">
p["CzyNiepoprawnaNazwa"]=function(nazwa_jednostki)...end;
</syntaxhighlight>
Parametry:
* {{Code|nazwa_jednostki}} - nazwajednostki 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2mn19fl77o9t5uqhn0w0ws2fo3use19
540290
540289
2026-04-22T18:59:46Z
Persino
2851
/* {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} */
540290
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} ==
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+);}}}}.
Skrótowa definicja funkcji:
<syntaxhighlight lang="lua">
p["CzyNiepoprawnaNazwa"]=function(nazwa_jednostki)...end;
</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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
g78en4p7dvekwshf77mf01jajc4q9sl
540291
540290
2026-04-22T19:02:53Z
Persino
2851
/* {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} */
540291
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} ==
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">
p["CzyNiepoprawnaNazwa"]=function(nazwa_jednostki)...end;
</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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
01d9fav2kkjkkde9mmdj9lms5wpk7r4
540292
540291
2026-04-22T19:14:21Z
Persino
2851
/* {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} */
540292
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} ==
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">
p["CzyNiepoprawnaNazwa"]=function(nazwa_jednostki)...end;
</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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
55tyowto5vsm5ikcz4yc6ualjwavvvw
540295
540292
2026-04-22T19:37:36Z
Persino
2851
/* {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} */
540295
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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">
p["CzyNiepoprawnaNazwa"]=function(nazwa_jednostki)...end;
</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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8uw6w9k1dthq0os0vj82mwyv6ufodew
540296
540295
2026-04-22T19:40:52Z
Persino
2851
/* {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} */
540296
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
26r7ocn0miiiy9tsslduq5qbabl5pa6
540297
540296
2026-04-22T20:04:06Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540297
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p["Nazwa_przestrzeni_nazw"](frame,...)|p=Pudełko/Pomocne}}}} domywznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1stn4fxn1p0ju7rlj7lze356m03224u
540298
540297
2026-04-22T20:04:33Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540298
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p["Nazwa_przestrzeni_nazw"](frame,...)|p=Pudełko/Pomocne}}}} domywznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
qxxfa0furxat8hmery0x9jkrbarsq8j
540299
540298
2026-04-22T20:05:48Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540299
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cvcxradoganr2slh5rynr9v6x05zb19
540300
540299
2026-04-22T20:06:23Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540300
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ph5ht7y9ep4tfgabhjtp6y2xuj7knof
540301
540300
2026-04-22T20:06:57Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540301
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
i1w15z17ajf144675p8fuzdsyemn2ud
540302
540301
2026-04-22T20:23:20Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540302
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hzi6y61xlr9quwhk7pkk82gqy6wlemj
540303
540302
2026-04-22T20:26:00Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540303
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziacka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}},
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
inahulbc5jv2j7xd5feex3koyfp6eu0
540304
540303
2026-04-22T20:29:23Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540304
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziacka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}},
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rv86sfl80e6cx0zasqapzbm4st2nc0z
540305
540304
2026-04-22T20:30:41Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540305
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziacka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}},
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
55wopk0mrpin8gxjklm5upowqnsm4k8
540306
540305
2026-04-22T20:35:15Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540306
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziacka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}},
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ek3qqx8ec00kz692902ap1gf0i08uub
540307
540306
2026-04-22T20:37:21Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540307
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
s0bu0s7ysclaye6km74xdiv209kqqv1
540308
540307
2026-04-22T20:38:14Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540308
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
lh0w76cf3opel4off59pixsu6sv6alr
540309
540308
2026-04-22T20:44:30Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540309
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
b27o6hbjqjh2b97k498o98n672kmflt
540310
540309
2026-04-22T21:13:49Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540310
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ==
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ==
== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ==
== {{Code|p["Nazwa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ==
== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ==
== {{Code|p["Typ jednostki"](frame,i)}} ==
== {{Code|p["Typ jednostki 2"](frame,i)}} ==
== {{Code|p["Typ jednostki 3"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==
== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==
== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==
== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==
== {{Code|p["Cecha pudełka"](frame)}} ==
== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ==
== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ==
== {{Code|p["Ogólne pudełko"](frame)}} ==
== {{Code|p["Tekst pudełka"](frame)}} ==
== {{Code|p["Błędy pudełka"](frame)}} ==
== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ==
== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ==
== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ==
== {{Code|p["Kod języka"]frame,i)}} ==
== {{Code|p["Kod projektu"](frame,i)}} ==
== {{Code|p["Klucz projektu"](frame,i)}} ==
== {{Code|p["Inny niż język bieżący wiki"](frame)}} ==
== {{Code|p["Inne niż lokalne wiki"](frame)}} ==
== {{Code|p["Inne niż bieżące wiki"](frame)}} ==
== {{Code|p["Podano parametry nienazwane"](frame)}} ==
== {{Code|p["Podano parametry numerowane"](frame)}} ==
== {{Code|p["Podano parametry nazwane"](frame)}} ==
== {{Code|p["Kod projektu tego projektu"](frame)}} ==
== {{Code|p["Kod języka tego projektu"](frame)}} ==
== {{Code|p["Klucz projektu tego projektu"](frame)}} ==
== {{Code|p["Strona główna tego projektu"](frame)}} ==
== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ==
== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ==
== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
f23k58or228d80raohx9l0lp872fl6h
540311
540310
2026-04-22T21:33:28Z
Persino
2851
540311
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw w pierwszej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw w drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"]frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów paramwetrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
n32ck1bc6ycdmhui285sengqn4m7l1r
540312
540311
2026-04-22T21:45:18Z
Persino
2851
/* Funkcje nazw przestrzeni nazw w drugiej wersji */
540312
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw w pierwszej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"]frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów paramwetrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
iv8b4srq0won7dewhqhqhaft8udjyb4
540313
540312
2026-04-22T21:46:20Z
Persino
2851
/* Funkcje nazw jednostki */
540313
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw w pierwszej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"]frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów paramwetrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
g9prh1a02bps6lql47vu7hizhptu56d
540314
540313
2026-04-22T21:47:32Z
Persino
2851
/* Funkcje nazw przestrzeni nazw w pierwszej wersji */
540314
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"]frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów paramwetrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
o8mkyr4mp5cf4ga8xmo2n6l45o1v61h
540315
540314
2026-04-22T21:49:48Z
Persino
2851
/* Funkcje pełnych nazw jednostki */
540315
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"]frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów paramwetrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gopag8ca7iz9a6g8xej1r8u89ede3w1
540316
540315
2026-04-22T21:50:34Z
Persino
2851
/* Funkcje typów paramwetrów, czy podane je */
540316
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"]frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8mq2ilqdoormhzxexq9131nvw8wpusl
540317
540316
2026-04-22T21:51:50Z
Persino
2851
/* Funkcje stron */
540317
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"]frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
l8dk8c7a0diafrd9mety6hjkqvftubb
540318
540317
2026-04-22T22:20:24Z
Persino
2851
/* Funkcje kodów */
540318
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
c8x0kihkqj5v8oyavtuj1qzc1bfamls
540319
540318
2026-04-23T05:13:14Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540319
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
<!-- Czyli wynik:
Moduł
-->
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9vv7egux8ngdprym6295wwzqgj0xgjd
540320
540319
2026-04-23T05:25:42Z
Persino
2851
540320
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
<!-- Czyli wynik:
Moduł
-->
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1mnbc16wzn3d2ov62jls78qdaoxl5mv
540321
540320
2026-04-23T05:35:03Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540321
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
<!-- Czyli wynik:
Moduł
-->
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}.
Najpierw w funkcji nagłówku brane są paramtry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dyxeic0tn4rn03t1pfy9pb610qaawlv
540322
540321
2026-04-23T05:41:04Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540322
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
<!-- Czyli wynik:
Moduł
-->
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}.
Najpierw w funkcji nagłówku brane są paramtry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4qfqeaaqwzb2jp287tphk32e4j6ckkn
540323
540322
2026-04-23T05:50:26Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540323
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
<!-- Czyli wynik:
Moduł
-->
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}.
Najpierw w funkcji nagłówku brane są paramtry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
15506pedg79uk44dl9pdpdrms1uak3s
540324
540323
2026-04-23T05:54:44Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540324
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
<!-- Czyli wynik:
Moduł
-->
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
sq2kgd8xbakxn3758kpji9w7ctf6tpd
540325
540324
2026-04-23T06:04:14Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540325
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
<!-- Czyli wynik:
Moduł
-->
</syntaxhighlight>
Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
juhusf2d26ilg152veb0nintfz9hhd5
540326
540325
2026-04-23T06:09:27Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540326
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; -->
nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł
<!-- Czyli wynik:
Moduł
-->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6w8n8c11ly0urxa5fxm9tgtozos2ema
540327
540326
2026-04-23T06:20:16Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540327
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2g3clp3re98ctoca7nd8wftls85rmwe
540328
540327
2026-04-23T06:22:10Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540328
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
18g6nvs58at5ckfqaedtxltp0uar602
540329
540328
2026-04-23T06:22:49Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540329
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ezc2q3uavzgasma74bw76dcj2jacc4f
540330
540329
2026-04-23T06:43:38Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540330
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} w {{sr|#Funkcje typu jednostki|p=Pudełko}}.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
51f7zxhgyodylr3oz11gnw3cyyz2jyz
540331
540330
2026-04-23T06:45:19Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540331
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
l8x4polws0qnyihf2767lezyz7am2oa
540332
540331
2026-04-23T07:06:32Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540332
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
i7vjoceis15hhwq3jo5noo1iaiwkccx
540333
540332
2026-04-23T07:39:05Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540333
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
f1czl6xk6pk20vvn8btz6vfv53poqc1
540334
540333
2026-04-23T07:40:02Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540334
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
e050tzvlwz5hjweskytte0f71bb51wx
540335
540334
2026-04-23T07:40:33Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540335
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna,
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
52fbls2soelenp0uj4ntooce9e9mjr6
540336
540335
2026-04-23T08:00:22Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540336
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cqp2tzis31uiklc2k28w8al0c9dsmcu
540337
540336
2026-04-23T08:06:39Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540337
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
duql5vuohidnqnfr7r1sr78xnk3m163
540338
540337
2026-04-23T08:26:29Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540338
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numerej mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cvqvi81z9jrpl342fjemm9old03och6
540339
540338
2026-04-23T08:27:19Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540339
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numerej mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
o5vw5e01y2pmnvsqlwgbom827vx0rdt
540341
540339
2026-04-23T08:40:02Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540341
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numerej mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
q1irarc6ezchee6sjcwxo2m0qjxomv5
540342
540341
2026-04-23T08:41:08Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540342
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numerej mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
g11lriujta6s8rkhkvl6052r8ete57q
540343
540342
2026-04-23T08:44:52Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540343
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numerej mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0rcygf4949vvgsqdy4txf815nvh1jcu
540344
540343
2026-04-23T08:45:34Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540344
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5z6mmp4g0lc2rednk5k1xiwvwbteegf
540345
540344
2026-04-23T08:54:37Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540345
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
651ken29mhfd5vx2d3hr2tfflffrpb8
540346
540345
2026-04-23T09:08:53Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540346
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hnfmxsyz9q5rhlbejl8iy1cfzpn6rtv
540347
540346
2026-04-23T09:10:00Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540347
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8r84wbqxjrsm84jfeq3kp1u564l0mj3
540348
540347
2026-04-23T09:25:33Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540348
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
59864z968ktabovclxtzp4eehci8kbu
540349
540348
2026-04-23T09:28:58Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540349
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
iutg6zpilyf0xlchgypqw4rbbfbrhj0
540350
540349
2026-04-23T09:31:05Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} */
540350
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, tonie było by żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4borsx0nosenegh88ihmj7i3fvngmgi
540351
540350
2026-04-23T09:32:52Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} */
540351
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, tonie było by żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
23ebf0ho2z269xcivobkaqttc4b8rht
540352
540351
2026-04-23T09:36:30Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} */
540352
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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>
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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie było by żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
a5ftjfitvyhcarb4shq78w7zh0sjebh
540353
540352
2026-04-23T09:39:25Z
Persino
2851
/* {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} */
540353
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie było by żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
o4b0dorxxh89ngsf0msrwv0grhhe2g7
540354
540353
2026-04-23T09:41:53Z
Persino
2851
540354
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
oc2ecpjhuxo0pewn01jfyre1ut5e23f
540355
540354
2026-04-23T09:47:23Z
Persino
2851
540355
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2ao16fkeaqzlp4l5f55sk83x3ast73g
540356
540355
2026-04-23T09:53:49Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540356
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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 jego definicja w środku, jest:
<syntaxhighlight lang="lua">
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");
return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki);
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gnioem3vsgnpwjt4back7ss3t1avff5
540357
540356
2026-04-23T09:56:12Z
Persino
2851
540357
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
d8gfi0u2yrt1z7n7lu1sh0w16y6tdrr
540358
540357
2026-04-23T10:08:10Z
Persino
2851
/* Funkcje nazw przestrzeni nazw */
540358
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
irilte6aqvspitgbl8zfruuqjjk1x3v
540360
540358
2026-04-23T11:21:34Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */
540360
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gll3zosd7tmij4mxjpjibdojudtzvky
540361
540360
2026-04-23T11:26:10Z
Persino
2851
540361
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...,
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw,
** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
24aalzv38w12exr61bm64indo2m2u9k
540363
540361
2026-04-23T11:33:00Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540363
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...,
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw,
** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, tyo i tak otrzymamy na samym końcu jego nazwę przeddmiotową.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
o62rli72hwrtc93nqr9y3tuei2qgqlv
540364
540363
2026-04-23T11:33:23Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540364
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...,
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw,
** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, tyo i tak otrzymamy na samym końcu jego nazwę przedmiotową.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
cfx6j0tu0cda7io7hxxk7f6gibozrpc
540365
540364
2026-04-23T11:34:47Z
Persino
2851
/* {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} */
540365
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...,
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw,
** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, tyo i tak otrzymamy na samym końcu jego nazwę przedmiotową.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rjuva1tygenj16e6u30hmwm0cqcfkhh
540366
540365
2026-04-23T11:35:50Z
Persino
2851
/* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */
540366
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}}
Moduł wywołuje się za pomocą polecenia:
<syntaxhighlight lang="lua">
local pudelko_modul=require("Module:Pudełko");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu.
Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej.
Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu.
Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu.
A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka.
Zestawienie:
* {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ...,
* {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}},
* {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw,
** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki.
== {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} ==
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 jego 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]]";
-- Fukcja zwróci wartość: local czy_poprawna_nazwa=true;
local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki);
</syntaxhighlight>
== Funkcje nazw przestrzeni nazw ==
=== {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (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 przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} ===
Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (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 przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; -->
<!-- Czyli wynik: -->
Moduł
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
=== {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} ===
Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (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 przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}.
Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo.
Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji.
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"](frame,...)|p=Pudełko}}}}.
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 jego 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>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}.
* {{Code|i}} - numer zmiennej nazwy przestrzeni nazw.
Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|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.
Parametry ramki tablicy transportu dziecka:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej.
* {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna.
Parametr ramki tablicy transportu rodzica szablonu:
* {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej.
Przykłady:
<syntaxhighlight lang="mediawiki">
{{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}}
</syntaxhighlight>
W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}}
</syntaxhighlight>
Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}:
<syntaxhighlight lang="mediawiki">
<!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; -->
<!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; -->
<!-- Czyli wynik: -->
Dyskusja modułu
<!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; -->
</syntaxhighlight>
Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych.
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{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}}
* {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}}
Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji.
Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli.
Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji.
Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu.
== Funkcje nazw przestrzeni nazw drugiej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} ===
== Funkcje pełnych nazw jednostki ==
=== {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki"](frame,i)}} ===
== Funkcje pełnych nazw jednostki drugiej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} ===
== Funkcje pełnych nazw jednostki trzeciej wersji ==
=== {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} ===
== Funkcje nazw jednostki ==
=== {{Code|p["Nazwa jednostki"](frame,i)}} ===
== Funkcje nazw jednostki drugiej wersji ==
=== {{Code|p["Nazwa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} ===
== Funkcje nazw przestrzeni nazw trzeciej wersji ==
=== {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} ===
=== {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} ===
== Funkcje nazw jednostki trzeciej wersji ==
=== {{Code|p["Nazwa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} ===
=== {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} ===
== Funkcje typu jednostki ==
=== {{Code|p["Typ jednostki"](frame,i)}} ===
=== {{Code|p["Typ jednostki 2"](frame,i)}} ===
=== {{Code|p["Typ jednostki 3"](frame,i)}} ===
=== Funkcje typu jednostki przedmiotowe ===
==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ====
==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ====
=== Fukcje typu jednostki dyskusji ===
==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ====
==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ====
==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ====
== Funkcje chech pudełka ==
=== {{Code|p["Cecha pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowa cecha pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjna cecha pudełka"](frame)}} ===
== Fukcje ogólnego pudełka ==
=== {{Code|p["Ogólne pudełko"](frame)}} ===
== Funkcje ogólne ==
=== {{Code|p["Tekst pudełka"](frame)}} ===
== Funkcje błędów pudełka ==
=== {{Code|p["Błędy pudełka"](frame)}} ===
=== {{Code|p["Przedmiotowe błędy pudełka"](frame)}} ===
=== {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===
== Funkcje nazw stron ==
=== {{Code|p["Nazwa strony głównej projektu"](frame,i)}} ===
=== {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} ===
== Funkcje kodów ==
=== {{Code|p["Kod języka"](frame,i)}} ===
=== {{Code|p["Kod projektu"](frame,i)}} ===
=== {{Code|p["Klucz projektu"](frame,i)}} ===
== Funkcje wiki ==
=== {{Code|p["Inny niż język bieżący wiki"](frame)}} ===
=== {{Code|p["Inne niż lokalne wiki"](frame)}} ===
=== {{Code|p["Inne niż bieżące wiki"](frame)}} ===
== Funkcje typów parametrów, czy podane je ==
=== {{Code|p["Podano parametry nienazwane"](frame)}} ===
=== {{Code|p["Podano parametry numerowane"](frame)}} ===
=== {{Code|p["Podano parametry nazwane"](frame)}} ===
== Funkcje kodów tego projektu ==
=== {{Code|p["Kod projektu tego projektu"](frame)}} ===
=== {{Code|p["Kod języka tego projektu"](frame)}} ===
=== {{Code|p["Klucz projektu tego projektu"](frame)}} ===
== Funkcje stron ==
=== {{Code|p["Strona główna tego projektu"](frame)}} ===
=== {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} ===
== Funkcje nazw stron drugiej wersji ==
=== {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} ===
=== {{Code| p["Nazwa strony głównej projektu 2"](frame)}} ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
70e6ym5amdtjk0xmtgyadcdh10blfcs